moodlit-native/Sources/Resources/MoodlitNative.entitlements
till b887917d81 feat(smart-home): μ-9.3 HomeKit als zweiter Smart-Home-Treiber
iOS-only: Apple Home-Lampen reagieren auf Mood-Wechsel parallel
zur direkten Hue-Bridge. Trade-off: HomeKit rate-limited (~10Hz),
für Mood-Switches okay, für Beat-Sync zu langsam.

Was:
- Sources/Core/SmartHome/HomeKitController.swift @Observable +
  HMHomeManagerDelegate:
  - start(): triggert iOS-HomeKit-Permission-Prompt
  - LampAccessory-Indexer extrahiert nur Lightbulb-Services, gruppiert
    nach Room
  - applyMood schreibt Hue/Saturation/Brightness/PowerState pro
    Accessory mit RGB→HSV-Konvertierung (HomeKit-Skala: h 0-360,
    s/v 0-100)
  - Selected-Lamps in App-Group-UserDefaults
  - turnOffSelected() beim Player-Close
- Sources/Features/Settings/HomeKitSettingsView.swift: Permission-State-
  Anzeige + Lamps gruppiert nach Room mit Multi-Select-Toggle
- SettingsView: NavigationLink zu HomeKitSettingsView (iOS-only)
- MoodPlayerView: pushToHomeKit() + turnOffHomeLights() parallel zu Hue
- project.yml: NSHomeKitUsageDescription + NSLocalNetworkUsageDescription
  in Info.plist, com.apple.developer.homekit-Entitlement
  (Apple-Dev-Portal-Capability-Aktivierung steht noch aus)

primaryHome → homes.first weil iOS-16.1-Deprecation.

Build iOS+macOS grün, 18/18 Tests grün.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:18:50 +02:00

25 lines
731 B
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:moodlit.mana.how</string>
<string>webcredentials:moodlit.mana.how</string>
</array>
<key>com.apple.developer.homekit</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>group.ev.mana.moodlit</string>
</array>
<key>com.apple.security.network.client</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)ev.mana.session</string>
</array>
</dict>
</plist>