feat(smart-home): μ-9.0/.1/.2 Philips Hue Bridge — Setup + Mood-Push
Native-lokale Hue-Integration ohne Server-Side-Bridge — App-Key
bleibt im iOS-Keychain, kein mana-Service speichert Lampen-Auth.
Was:
- Sources/Core/SmartHome/HueClient.swift — CLIP v2 REST-Client mit
Discovery (https://discovery.meethue.com), manueller IP-Probe,
Press-Button-Pair, listLights, setLight (xy+brightness+on+
transitionMs). Self-signed-Bridge-Cert via dedicated URLSession-
Delegate akzeptiert (begründet im File).
- HueColor.swift — sRGB-Hex → CIE-1931-xy Konvertierung (Gamut C +
D65) inkl. Gamma-Linearisierung. 7 Unit-Tests (Red/Blue/White/
Black + Edge-Cases) grün.
- HueController.swift @Observable @MainActor:
- SetupState-Maschine (notConfigured/pairing/configured/failed)
- Bridge + Light-Selection in App-Group-UserDefaults, App-Key
im iOS-Keychain (kSecAttrAccessibleAfterFirstUnlock)
- applyMood(colors, brightness) verteilt Farben zyklisch über
ausgewählte Lampen, transitionMs=600 für smooth Switch
- turnOffSelected() beim Player-Close
- HueSettingsView — Discovery → Manueller-IP-Fallback → Pair
(30s-Retry-Loop) → Light-Picker mit On-Status-Indikator
- SettingsView neuer "Smart Home"-Section mit NavigationLink zu HueSettingsView
- MoodPlayerView hookt onAppear/onChange-mood/onChange-isPaused/
onDisappear in den HueController
Build iOS+macOS BUILD SUCCEEDED. 18/18 Tests grün (11 Domain + 7 Hue).
Was NICHT in dieser Phase:
- Entertainment-API (DTLS 50Hz) — kommt mit μ-10.3 Beat-Sync
- Animation-Effekte (pulse/breath/wave als Hue-Schleifen) — μ-9.2
- LIFX/Nanoleaf/WLED-Adapter — μ-9.5
- HomeKit-Output — μ-9.3
- Background-Bridge-Service — wenn überhaupt nötig
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>