Eine Home Assistant Lovelace Card für Kameras, die das Agora RTC Protokoll nutzen – insbesondere die Yuka Mini und ähnliche Tuya-Agora-Kameras.
⚠️ Die original Agora Card wird nicht mehr gepflegt. Diese Card ist ein vollständiger Nachbau mit Agora Web SDK 4.x.
- Yuka Mini (alle Modelle)
- Tuya-basierte Kameras mit Agora-Stream
- Alle anderen Kameras, die das Agora RTC Protokoll nutzen
- Gehe in HACS → Integrationen → Drei Punkte oben rechts → Benutzerdefinierte Repositories
- URL eingeben:
https://github.com/hauck-hilbk/agora-camera-card - Kategorie: Lovelace
- Hinzufügen klicken
- In HACS unter Frontend nach Agora Camera Card suchen
- Herunterladen klicken
- Home Assistant neu starten
Falls die Card nicht automatisch erkannt wird:
# configuration.yaml
lovelace:
resources:
- url: /hacsfiles/agora-camera-card/agora-camera-card.js
type: moduleFür die Yuka Mini benötigst du:
| Parameter | Beschreibung | Woher |
|---|---|---|
app_id |
Agora App ID | Tuya Developer Console oder App-Traffic mitschneiden |
channel |
Kanal-Name | Meist die Geräte-ID der Kamera |
token |
RTC Token | Wird von Tuya-Backend generiert (kurzlebig!) |
uid |
User ID | 0 = zufällig |
- Anmelden auf iot.tuya.com
- Projekt öffnen → Cloud-Entwicklung
- Die Agora App ID steht unter Audio/Video Dienste
Nutze einen MITM-Proxy (z.B. Charles, mitmproxy) während die offizielle App die Kamera öffnet. Die Parameter erscheinen in den API-Calls.
Die offizielle tuya Integration kann Agora-Credentials über den Cloud-API-Aufruf POST /v1.0/rtc/agora/user/token beziehen.
type: custom:agora-camera-card
app_id: "DEINE_AGORA_APP_ID"
channel: "DEIN_KANAL"
token: "DEIN_RTC_TOKEN" # optional bei Test-Modus
title: "Yuka Mini Eingang"type: custom:agora-camera-card
# ── Pflichtfelder ─────────────────────────────────
app_id: "abc123def456" # Agora App ID
channel: "camera_001" # Kanal-Name
# ── Verbindung ────────────────────────────────────
token: null # null = Test-Modus (nur für lokale Tests!)
uid: 0 # 0 = zufällige UID
codec: h264 # h264 (Yuka Mini) oder vp8
remote_uid: "" # UID des Kamera-Geräts (leer = erster Stream)
# ── Darstellung ───────────────────────────────────
title: "Yuka Mini" # Titel (leer = kein Header)
width: "100%" # Breite
height: "auto" # Höhe
aspect_ratio: "16/9" # 16/9, 4/3, 1/1 oder none
# ── Verhalten ─────────────────────────────────────
auto_connect: true # Automatisch verbinden beim Laden
volume: 0 # Audio-Lautstärke (0 = stumm)Yuka Mini (typisch):
type: custom:agora-camera-card
app_id: "your_agora_app_id"
channel: "yuka_device_id_here"
codec: h264
title: "Haustür"
aspect_ratio: "16/9"
auto_connect: true
volume: 0Im Dashboard ohne Titel:
type: custom:agora-camera-card
app_id: "your_agora_app_id"
channel: "channel_name"
codec: h264
aspect_ratio: "4/3"Agora-Tokens laufen nach kurzer Zeit ab (typisch 24h). Für eine dauerhafte Lösung empfehle ich:
automation:
- alias: "Agora Token erneuern"
trigger:
- platform: time_pattern
hours: "/12" # alle 12 Stunden
action:
- service: lovelace.reload_resourcesSetze einen kleinen Node.js-Server auf, der Tokens über die Agora Token-API generiert und regelmäßig erneuert.
Nutze den HA-Befehl rest_command um über Tuyas Cloud-API einen frischen Token zu beziehen:
rest_command:
get_agora_token:
url: "https://openapi.tuyaeu.com/v1.0/rtc/agora/user/token"
method: POST
headers:
client_id: !secret tuya_client_id
access_token: !secret tuya_access_token
payload: >
{"room_id": "{{ room_id }}", "user_id": "{{ user_id }}"}- Agora Web SDK: 4.20.1 (wird dynamisch geladen)
- Modus: Live Streaming (Audience-only, kein eigener Stream)
- Codecs: H.264 (Yuka Mini Standard), VP8
- Reconnect: Automatisch bis zu 3 Versuche mit steigendem Delay
- Audio: Standardmäßig stumm (volume: 0)
| Problem | Lösung |
|---|---|
| "Verbindung fehlgeschlagen" | Token abgelaufen – neu generieren |
| Kein Video, aber verbunden | remote_uid des Kamera-Geräts angeben |
| Schwarzes Bild | Codec-Mismatch – codec: vp8 versuchen |
| CORS-Fehler | Agora App-Domain-Whitelist prüfen |
Diese Card stellt eine direkte RTC-Verbindung über das Agora-Netzwerk her. Der Stream läuft über Agoras Edge-Server – nicht durch Home Assistant. Stelle sicher, dass deine Datenschutzanforderungen damit vereinbar sind.
MIT License – Frei nutzbar, anpassbar, weitergeben erlaubt.