
Yeelight ist eine Marke für Wi-Fi Smart-LED-Beleuchtung — einfarbige Lampen, Tunable-White- und RGB-Lampen, LED-Streifen sowie Deckenleuchten — herausgegeben von Qingdao Yeelink (Teil des Xiaomi-Ökosystems). Jedes LAN-fähige Yeelight-Produkt spricht dasselbe JSON-RPC Inter-Operation Protocol auf TCP-Port 55443, daher deckt eine einzige TapHome-Vorlage die gesamte Produktfamilie ab.
Die Vorlage stellt ein Dimmer-Gerät bereit: Helligkeit (0–100 %) und Ein-/Aus-Steuerung mit weichen Übergängen. Der aktuelle Farbmodus und die Farbtemperatur werden als schreibgeschützte Service-Attribute gemeldet. TapHome kommuniziert direkt über das lokale Netzwerk mit der Lampe — sobald LAN Control aktiviert ist, wird kein Yeelight-Cloud-Konto benötigt.
Hardware-Anschluss
Yeelight-Lampen werden aus dem normalen Stromnetz versorgt (typischerweise E27, E14, GU10 oder 24-V-Netzteil für Streifen — je nach Produkt). Zwischen TapHome und Lampe ist keine Verkabelung erforderlich — die gesamte Kommunikation läuft über Wi-Fi. Die Lampe muss im selben LAN / VLAN wie die TapHome-CCU sein, da das JSON-RPC-Protokoll weder Authentifizierung noch Verschlüsselung verwendet und der Datenverkehr nie über die Yeelight-Cloud geroutet wird.
Das Yeelight-LAN-Protokoll ist unverschlüsselt. TCP-Port 55443 niemals ins öffentliche Internet exponieren und die Lampen in einem vertrauenswürdigen Netzsegment betreiben — jeder mit LAN-Zugang kann Befehle an die Lampe senden.
Konfiguration
LAN Control aktivieren
LAN Control (in manchen Regionen Developer Mode genannt) ist an der Lampe standardmäßig deaktiviert. Ohne diese Einstellung lehnt die Lampe alle TCP-Verbindungen auf Port 55443 ab.
- Öffne die Yeelight-App und koppele die Lampe per SmartConfig / QuickConnect mit dem lokalen Wi-Fi, falls dies noch nicht geschehen ist.
- Wähle in der App die Ziel-Lampe aus.
- Tippe auf das Einstellungssymbol (oben rechts) und öffne LAN Control (in einigen Firmware-Versionen Developer Mode).
- Schalte LAN Control auf EIN.
- Notiere die IP-Adresse der Lampe — sie wird in den Geräteinformationen der Yeelight-App angezeigt oder kann aus der DHCP-Lease-Tabelle des Routers abgelesen werden.
Sobald LAN Control aktiviert ist, lauscht die Lampe auf TCP-Port 55443 und kündigt sich periodisch per UDP-Multicast 239.255.255.250:1982 an.
Netzwerk-Konfiguration
- IP-Adresse — die TapHome-Vorlage findet Lampen nicht automatisch. Weise der Lampe im Router eine statische IP oder eine DHCP-Reservierung zu, damit sich die Adresse nach einer Lease-Erneuerung nicht ändert.
- Gleiches LAN-Segment — TapHome-CCU und Lampe müssen in derselben Broadcast-Domäne sein. Liegen Wi-Fi- und kabelgebundene Clients in verschiedenen VLANs, füge eine Firewall-Regel hinzu, die TCP 55443 zwischen ihnen erlaubt.
Import-Parameter
Beim Importieren der Vorlage in TapHome werden drei Werte abgefragt:
| Parameter | Beschreibung | Standard |
|---|---|---|
ipAddress | IP-Adresse der Yeelight-Lampe im LAN | 192.168.0.1 (Platzhalter — durch echte IP ersetzen) |
Port | TCP-Steuerport der Lampe | 55443 |
Internal poll interval | Wie oft die Vorlage get_prop sendet (in Millisekunden) | 10000 (10 s) |
Der Standardport 55443 ist der übliche Yeelight-LAN-Control-Port und sollte nicht geändert werden, außer die Lampe wurde auf einen abweichenden Port konfiguriert.
Zwischen den Polls reagiert die Vorlage auch auf
props-Notifications, die die Lampe bei jeder Zustandsänderung selbständig aussendet. Praktisch bedeutet das: Änderungen an Helligkeit oder Ein/Aus über die Yeelight-App, einen Wandschalter oder eine andere Home-Assistant-Instanz erscheinen in TapHome nahezu sofort, ohne den nächsten Poll abzuwarten.
Gerätefunktionen
Dimmer (Helligkeit und Ein/Aus)
Die Vorlage stellt ein einzelnes Dimmer-Gerät bereit. Bei jedem Poll sendet sie:
| |
und wertet result[0] (Helligkeit 1–100, geteilt durch 100 in den TapHome-Bereich 0.0–1.0) sowie result[1] ("on" / "off") aus.
Schreibvorgänge werden in zwei JSON-RPC-Befehle übersetzt:
- Ist der Zielwert größer als null, sendet die Vorlage
set_power ["on","smooth",300]gefolgt vonset_bright [round(level*100),"smooth",500]. Der 300-ms-Einschaltübergang und der 500-ms-Helligkeitsübergang erzeugen einen weichen Fade statt eines harten Sprungs. - Ist der Zielwert null, sendet die Vorlage
set_power ["off","smooth",300].
Der Dimmer verarbeitet außerdem die von der Lampe gesendeten props-Notifications (Power / Brightness), so dass externe Zustandsänderungen ohne Warten auf den nächsten Poll in TapHome erscheinen.
Farbmodus und Farbtemperatur (nur Lesen)
Zwei Service-Attribute auf Modulebene werden über einen separaten get_prop-Request (id=981) gelesen:
- Color mode —
RGB,TemperatureoderHSV, dekodiert aus der numerischen Eigenschaftcolor_mode(1 / 2 / 3) perSWITCH-Ausdruck im Listener-Skript. - Color temperature — Kelvin-Wert im Format
"{ct}K"(zum Beispiel"4000K"). Nur aussagekräftig, wenn die Lampe im Temperature-Modus arbeitet. Typischer modellabhängiger Bereich: 1700–6500 K für Farblampen und -streifen, 2700–6500 K für Deckenleuchten (ceiling3 ist auf 6000 K begrenzt).
Beide Attribute sind rein diagnostisch — die Vorlage schaltet den Farbmodus nicht um und schreibt keine neue Farbtemperatur.
Weitere Funktionen
Das Yeelight-LAN-Protokoll bietet außerdem RGB- und HSV-Farbsteuerung (set_rgb, set_hsv), Farbtemperatur-Steuerung (set_ct_abx), Color-Flow-Programme (start_cf / stop_cf), vordefinierte Szenen (set_scene), geräteinterne Sleep-Timer (cron_add), Hintergrundlicht-Steuerung bei Doppelleuchten (bg_*-Methoden) sowie Music Mode (set_music, ein Reverse-TCP-Kanal, der das Rate-Limit umgeht). Keine dieser Funktionen ist in der aktuellen TapHome-Dimmer-Vorlage implementiert — wer volle Farbe oder Effekte benötigt, muss die Vorlage erweitern oder parallel die native Yeelight-App nutzen.
Farbe, Farbtemperatur und Szenen lassen sich in einer künftigen Vorlagen-Aktualisierung über denselben TCP-Kanal ergänzen. Die PacketParser Read-/Write-Skripte lassen sich um
set_ct_abx,set_rgboderset_sceneerweitern, ohne die Import-Parameter zu verändern.
Fehlerbehebung
Lampe reagiert nicht auf Befehle
Prüfe, ob LAN Control an der Lampe aktiviert ist (Yeelight-App → Lampeneinstellungen → LAN Control). Ohne diese Einstellung lehnt die Lampe alle TCP-Verbindungen auf Port 55443 ab.
Kontrolliere die IP-Adresse der Lampe in der Yeelight-App oder in der DHCP-Lease-Tabelle des Routers und stelle sicher, dass sie mit dem Import-Parameter
ipAddressübereinstimmt. Yeelight-Lampen haben standardmäßig keine feste IP — der Lease kann abgelaufen und die Adresse gewechselt sein.Vergib der Lampe eine statische IP oder eine DHCP-Reservierung, damit die Adresse stabil bleibt.
Prüfe, dass TapHome-CCU und Lampe im selben LAN / VLAN sind und TCP
55443dazwischen nicht durch eine Firewall blockiert wird.Teste die Verbindung manuell:
telnet {bulb-ip} 55443und sende einen rohen Request mit\r\nals Abschluss:1{"id":1,"method":"get_prop","params":["bright","power"]}Eine funktionsfähige Lampe antwortet mit
{"id":1,"result":["<bright>","<power>"]}.
Read error: client quota exceeded
Jede TCP-Verbindung zu einer Yeelight-Lampe ist auf 60 Befehle pro Minute begrenzt, und die Lampe akzeptiert insgesamt maximal 4 gleichzeitige Verbindungen (144 Befehle/Minute im gesamten LAN). Wenn ein weiteres System die Lampe zeitgleich pollt — Home Assistant, eine Yeelight-Cloud-Session, ein eigenes Skript — kann der kombinierte Verkehr Rate-Limit-Fehler auslösen, die in TapHome als Read error: client quota exceeded gemeldet werden.
- Deaktiviere oder verlangsame andere Integrationen, die dieselbe Lampe verwenden.
- Belasse das Poll-Intervall in TapHome auf dem Standardwert von
10000ms oder höher. Einget_propplus zweiset_*-Schreibvorgänge pro Änderung bleiben zuverlässig unter dem 60-Befehle/Minute-Kontingent. - Schließe ungenutzte
telnet-Debug-Sessions — sie zählen zum Limit von 4 Verbindungen.
Service-Attribut Color temperature zeigt “error”
Die Service-Attribute Color mode und Color temperature lesen color_mode und ct aus der Lampe. Handelt es sich um ein Mono-Modell (nur Weiß) ohne Tunable-White, oder arbeitet die Lampe im RGB- oder HSV-Modus, ist der ct-Wert nicht aussagekräftig und das Listener-Skript meldet Color temperature als "error". Das ist erwartetes Verhalten und kein Fehler.
Änderungen in der Yeelight-App werden nicht reflektiert
Die Vorlage reagiert auf von der Lampe gesendete props-Notifications, externe Änderungen erscheinen daher normalerweise innerhalb einer Sekunde. Falls nicht:
- Die Notification kann eingetroffen sein, während der TCP-Socket neu aufgebaut wurde — der nächste Poll (Standard 10 s) synchronisiert wieder.
- Einige ältere Firmware-Versionen senden Notifications nur, wenn aktiv ein Befehl abgesetzt wurde. Aktualisiere die Lampen-Firmware über die Yeelight-App.
- Die Lampe kann das 4-Verbindungen-Limit erreicht haben — reduziere die Anzahl gleichzeitiger Clients im LAN.
