Diese Custom Component streamt live Video von Philips Hue Secure Kameras (z.B. CMW002 Floodlight) direkt in Home Assistant über AWS Kinesis Video Streams (KVS) WebRTC.
- Home Assistant 2023.6+
- HACS (optional, aber empfohlen)
- Python-Pakete werden automatisch installiert:
aiortc,boto3,websockets,cryptography,av
- HACS → Integrationen → ⋮ → Benutzerdefinierte Repositories
- URL:
https://github.com/timluis/hue-secure-camera-ha, Typ:Integration - Integration "Philips Hue Secure Camera" suchen und installieren
- HA neu starten
# SSH in dein HA-System
scp -r hue_camera/custom_components/hue_secure_camera \
admin@192.168.0.105:/config/custom_components/Dann HA neu starten.
Du musst einmalig einen gültigen Bearer Token aus der Hue App extrahieren.
Option A: mitmproxy (empfohlen)
- mitmproxy auf Mac installieren:
brew install mitmproxy mitmproxy --listen-port 8080
- Handy → WLAN → Proxy → Mac-IP:8080
- Browser:
http://mitm.it→ Zertifikat installieren - Hue App öffnen → Kamera antippen (Live View)
- Im mitmproxy-Terminal: Request zu
api.account.meethue.comsuchen - Header
Authorization: Bearer eyJ...kopieren
Option B: Charles Proxy / HTTP Toolkit — funktioniert analog
Der Token läuft typischerweise 7 Tage ab. Falls du auch den Refresh Token findest, verlängert sich die Nutzung automatisch unbegrenzt.
- HA → Einstellungen → Geräte & Dienste → + Integration hinzufügen
- "Philips Hue Secure Camera" suchen
- Bearer Token einfügen (aus Schritt 1)
- Refresh Token einfügen (optional, für automatische Verlängerung)
- Home-ID wird automatisch ermittelt — oder manuell eingeben (14-stellige Zahl)
- Kamera aus der Liste wählen (oder MAC-Adresse manuell eingeben, z.B.
C4299615410E) - E2EE-Passphrase eingeben (falls in der Hue App unter
Einstellungen → Sicherheit → Videoüberwachung → E2EE-Passphrase gesetzt)
Die Kamera erscheint als camera.hue_camera_<mac> in HA.
Lovelace-Karte:
type: picture-entity
entity: camera.hue_camera_c4299615410e
show_state: falseHA Hue Cloud AWS KVS Kamera
│ │ │ │
├─ Bearer Token ─────────┤ │ │
├─ POST /live-stream ────►│ │ │
│◄── KVS creds + E2EE ───┤ │ │
│ │ │ │
├─ PUT /wake_up ─────────►│──────────────────────►│ │
│ │ │ │
├──── WSS connect ───────────────────────────────►│ │
│◄─── SDP offer ─────────────────────────────────┤◄── SDP offer ─────┤
├──── SDP answer ────────────────────────────────►│──── SDP answer ───►
│ │ │ │
│◄──────────────────── DTLS handshake ────────────────────────────────┤
│◄──────────────────── H264 SRTP (E2EE) ─────────────────────────────┤
│ │ │ │
├─ Kyber768.dec(envelope) → AES-GCM key │ │
├─ FrameCryptor.decrypt(payload, key) → H264 │ │
├─ av.decode(H264) → JPEG │ │
└─ async_camera_image() ─► HA Frontend │ │
| Problem | Status | Lösung |
|---|---|---|
DTLS close_notify nach Handshake |
✅ Gepatcht | _recv_next ignoriert Alert wenn SRTP aktiv |
| Falsche DTLS-Queue ohne MAX_BUNDLE | ✅ Gepatcht | RTCBundlePolicy.MAX_BUNDLE |
| FrameCryptor E2EE auf SRTP-Payload | PBKDF2 → Kyber768 Key-Ableitung implementiert | |
| Token-Ablauf nach 7 Tagen | ✅ Auto-Refresh | Refresh Token Flow + Hintergrund-Task |
Einstellungen → Geräte → Kamera → ⚙ Optionen → Bearer Token aktualisieren.
# configuration.yaml
logger:
default: warning
logs:
custom_components.hue_secure_camera: debugLogs zeigen: STUN=X DTLS=Y SRTP=Z OTHER=W frames=N alle 30 Sekunden.
- ARM64
libml_kem.so(aus der Hue APK) läuft nicht nativ auf x86-HA — stattdessen wirdkyber-py(Pure Python) als Fallback genutzt:pip install kyber-py - Die genauen PBKDF2-Parameter (Salt-Quelle, Iterationen) der Hue-App wurden aus
libapp.so(Dart AOT) reverse-engineered — weitere Anpassungen sind möglich - Kamera überträgt ausschließlich verschlüsselt (FrameCryptor E2EE) — ohne korrekte Passphrase kein Bild