
Die Yeelight-Color-Vorlage erweitert die reine Dimmer-Vorlage Yeelight um volle HSB-Farbsteuerung und einstellbares Weiß (Farbtemperatur). Sie richtet sich an dieselbe Familie von Wi-Fi-Smart-LEDs — Farblampen, Streifen und Deckenleuchten — und nutzt das identische Yeelight Inter-Operation Protocol auf TCP-Port 55443. Der Hauptunterschied ist das Gerätemodell: Statt eines einfachen Dimmers stellt die Vorlage einen PacketParserHSBLight bereit, der TapHome native Eigenschaften für Farbton, Sättigung, Helligkeit und Farbtemperatur in einem Gerät gibt.
TapHome kommuniziert mit der Lampe direkt im lokalen Netzwerk über JSON-RPC — nach Aktivierung von LAN Control auf der Lampe ist keine Cloud-Verbindung erforderlich. Die Vorlage pollt alle sechs Farbeigenschaften gleichzeitig und reagiert auf props-Benachrichtigungen der Lampe, sodass Änderungen aus der Yeelight-App oder einem anderen Controller nahezu sofort in TapHome erscheinen.
Hardwareanschluss
Yeelight-Lampen werden aus dem Standardnetz gespeist (typisch E27, E14, GU10 oder 24-V-Netzteil für LED-Streifen je nach Produkt). Zwischen TapHome und der Lampe ist keine Verkabelung nötig — die gesamte Kommunikation läuft über Wi-Fi. Die Lampe muss sich im gleichen LAN / VLAN wie die TapHome CCU befinden, da das JSON-RPC-Protokoll keine Authentifizierung und keine Verschlüsselung hat und der Datenverkehr nie über die Yeelight-Cloud geleitet wird.
Das Yeelight-LAN-Protokoll ist unverschlüsselt. Setzen Sie den TCP-Port 55443 nicht dem öffentlichen Internet aus und platzieren Sie die Lampen in einem vertrauenswürdigen Netzwerksegment — jeder mit Zugang zum LAN kann Befehle an die Lampe senden.
Konfiguration
LAN Control aktivieren
LAN Control (in manchen Regionen als Developer Mode bezeichnet) ist auf der Lampe standardmäßig deaktiviert. Ohne ihn werden TCP-Verbindungen auf Port 55443 abgelehnt.
- Öffnen Sie die mobile Yeelight-App und koppeln Sie die Lampe mit dem lokalen Wi-Fi-Netzwerk über die SmartConfig-/QuickConnect-Prozedur, falls noch nicht geschehen.
- Wählen Sie die Ziel-Lampe in der App aus.
- Tippen Sie auf das Einstellungssymbol (oben rechts) und öffnen Sie LAN Control (in manchen Firmware-Versionen als Developer Mode bezeichnet).
- Schalten Sie LAN Control auf ON.
- Notieren Sie 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.
Nach Aktivierung von LAN Control lauscht die Lampe auf TCP-Port 55443 und kündigt sich regelmäßig über UDP-Multicast 239.255.255.250:1982 an.
Netzwerkkonfiguration
- IP-Adresse — die TapHome-Vorlage erkennt Lampen nicht automatisch. Weisen Sie eine statische IP oder eine DHCP-Reservierung im Router zu, damit sich die Adresse der Lampe nach einer Lease-Erneuerung nicht ändert.
- Gleiches LAN-Segment — die TapHome CCU und die Lampe müssen sich in derselben Broadcast-Domäne befinden. Wenn Wi-Fi- und kabelgebundene Clients in getrennten VLANs sind, fügen Sie eine Firewall-Regel hinzu, die TCP 55443 zwischen ihnen erlaubt.
Importparameter
Beim Template-Import in TapHome gibt der Benutzer drei Werte ein:
| Parameter | Beschreibung | Standard |
|---|---|---|
ipAddress | IP-Adresse der Yeelight-Lampe im LAN | 192.168.0.1 (Platzhalter — durch echte IP ersetzen) |
Port | TCP-Steuerungsport auf der Lampe | 55443 |
Internal poll interval | Wie oft die Vorlage get_prop sendet (in Millisekunden) | 10000 (10 s) |
Der Standard-Port 55443 ist der Standard-Yeelight-LAN-Control-Port und sollte nicht geändert werden, es sei denn, die Lampe ist auf einen nicht-standardmäßigen Port konfiguriert.
Zwischen den Polls reagiert die Vorlage auch auf
props-Benachrichtigungen, die die Lampe bei Statusänderungen sendet. In der Praxis bedeutet dies, dass Farb-, Helligkeits- und Ein/Aus-Änderungen aus der Yeelight-App, einem Wandschalteradapter oder einem anderen Controller nahezu sofort in TapHome erscheinen, ohne auf den nächsten Poll zu warten.
Gerätefunktionen
HSB-Farblicht (Farbton, Sättigung, Helligkeit und Ein/Aus)
Die Vorlage stellt ein einzelnes HSB-Lichtgerät bereit. In jedem Poll-Zyklus sendet sie eine get_prop-Anfrage für alle sechs Eigenschaften gleichzeitig:
| |
Das Listener-Skript parst die Antwort und bildet sie auf native TapHome-Eigenschaften ab:
- Hue (
Hd) —result[0], Ganzzahl 0–359 Grad - Saturation (
Sa) —result[1], Prozent 0–100, geteilt durch 100 auf den TapHome-Bereich 0,0–1,0 - Brightness (
Hb) —result[2], Prozent 1–100, geteilt durch 100 auf den TapHome-Bereich 0,0–1,0 - Power (
St) —result[3],"on"wird auf 1 abgebildet,"off"auf 0 (Helligkeit wird ebenfalls auf 0 gesetzt, wenn ausgeschaltet) - Color temperature (
Ct) —result[4], Kelvin-Wert, nur gesetzt wenncolor_mode = 2(Weiß-Modus); sonst aufNaNgesetzt - Color mode —
result[5], bestimmt, obCtgeschrieben wird (1= RGB,2= Temperature,3= HSV)
Farbmodus-Umschaltung
Die Vorlage verwendet die Ct-Eigenschaft zur Bestimmung des aktiven Farbmodus:
Ct = NaN— die Lampe ist im HSV-Farbmodus. Schreibvorgänge verwendenset_hsvfür Farbton und Sättigung.Ct = Zahl— die Lampe ist im Weiß-Modus (Farbtemperatur). Schreibvorgänge verwendenset_ct_abx.
TapHome sendet keinen expliziten Modusumschaltbefehl. Stattdessen setzt der Benutzer die Farbtemperatur auf einen numerischen Wert, um in den Weiß-Modus zu wechseln, oder auf NaN (durch Auswahl einer Farbe im HSB-Picker), um in den HSV-Modus zu wechseln. Die Schreibskripte prüfen Ct vor dem Senden und überspringen den irrelevanten Befehl — writesaturation kehrt sofort zurück wenn Ct nicht NaN ist, und writecct kehrt sofort zurück wenn Ct NaN ist.
Schreibbefehle
Drei Schreibskripte steuern verschiedene Aspekte des Lichts:
- Helligkeit / Strom (
writebrightness) — bei Helligkeit > 0 sendet esset_power ["on","smooth",300]gefolgt vonset_bright [Level,"smooth",300]. Bei Helligkeit = 0 sendet esset_power ["off","smooth",300]. - Farbton und Sättigung (
writesaturation) — sendetset_power ["on","smooth",300]gefolgt vonset_hsv [Farbton, Sättigung,"smooth",300]. Läuft nur wennCt = NaN(HSV-Modus). - Farbtemperatur (
writecct) — sendetset_power ["on","smooth",300]gefolgt vonset_ct_abx [ct,"smooth",300]. Läuft nur wennCteine Zahl ist (Weiß-Modus). Gültiger Bereich: 1700–6500 K (genaue Grenzen hängen vom Lampenmodell ab).
Alle Schreibvorgänge verwenden einen 300-ms-Smooth-Übergang für ein sanftes Dimmen statt eines harten Sprungs. Nach jedem Schreibvorgang wird die Debounce-Variable auf 1 gesetzt, wodurch der nächste Poll-Zyklus übersprungen wird — dies verhindert das Lesen veralteter Zustände während des Übergangs der Lampe.
Service-Diagnose
Zwei Service-Attribute auf Modulebene werden über eine separate get_prop-Anfrage (id=981) gelesen:
- Farbmodus —
RGB,TemperatureoderHSV, dekodiert aus der numerischencolor_mode-Eigenschaft (1 / 2 / 3) mittels einesSWITCH-Ausdrucks im Modul-Listener-Skript. - Farbtemperatur — Kelvin-Wert, gemeldet als
"{ct}K"(z. B."4000K"). Nur aussagekräftig, wenn die Lampe im Temperature-Modus ist.
Diese Attribute sind reine Lese-Diagnose — die eigentliche Farbtemperatursteuerung erfolgt über die Ct-Eigenschaft auf Geräteebene und das oben beschriebene writecct-Skript.
Fehlerbehebung
Lampe reagiert nicht auf Befehle
Überprüfen Sie, dass LAN Control auf der Lampe aktiviert ist (Yeelight-App → Lampeneinstellungen → LAN Control). Ohne ihn lehnt die Lampe alle TCP-Verbindungen auf Port 55443 ab.
Bestätigen Sie die Lampen-IP in der Yeelight-App oder in der DHCP-Lease-Tabelle des Routers und stellen Sie sicher, dass sie mit dem Importparameter
ipAddressübereinstimmt. Yeelight-Lampen behalten standardmäßig keine feste IP — der Lease kann abgelaufen und die IP geändert worden sein.Weisen Sie der Lampe eine statische IP oder DHCP-Reservierung zu, um Adressänderungen zu verhindern.
Prüfen Sie, dass TapHome CCU und Lampe im gleichen LAN / VLAN sind und TCP
55443nicht von einer Firewall zwischen ihnen blockiert wird.Testen Sie die Konnektivität manuell:
telnet {bulb-ip} 55443und senden Sie eine rohe Anfrage gefolgt von\r\n:1{"id":1,"method":"get_prop","params":["hue","sat","bright","power","ct","color_mode"]}Eine funktionierende Lampe antwortet mit
{"id":1,"result":["<hue>","<sat>","<bright>","<power>","<ct>","<color_mode>"]}.
Farbbefehle werden ignoriert (Farbton/Sättigung ändert sich nicht)
Das writesaturation-Skript prüft Ct vor dem Senden von set_hsv. Wenn Ct auf einen numerischen Wert gesetzt ist (Weiß-Modus), kehrt das Skript zurück ohne einen Befehl zu senden. Um HSV-Farbe zu steuern, setzen Sie die Farbtemperatur zuerst auf NaN, indem Sie eine Farbe im TapHome-HSB-Picker auswählen.
Ebenso kehrt writecct ohne Senden zurück wenn Ct = NaN (HSV-Modus). Um eine Farbtemperatur zu schreiben, muss die Lampe bereits im Weiß-Modus sein.
Lesefehler: client quota exceeded
Jede TCP-Verbindung zu einer Yeelight-Lampe ist auf 60 Befehle pro Minute begrenzt, und die Lampe akzeptiert maximal 4 gleichzeitige Verbindungen insgesamt. Wenn ein anderes System die Lampe gleichzeitig pollt — Home Assistant, eine Yeelight-Cloud-Sitzung, ein benutzerdefiniertes Skript — kann der kombinierte Datenverkehr Rate-Limit-Fehler auslösen.
- Deaktivieren oder verlangsamen Sie andere Integrationen, die die Lampe teilen.
- Belassen Sie das TapHome-Poll-Intervall bei den Standard-
10000ms oder höher. Die Farbvorlage sendet einget_proppro Poll plus bis zu dreiset_*-Schreibvorgänge pro Änderung, was deutlich unter der 60-cmd/min-Quote liegt. - Schließen Sie ungenutzte
telnet-Debug-Sitzungen — sie zählen zum 4-Verbindungslimit.
HueSat- oder Farbtemperatur-Schreibfehler
Das Listener-Skript verfolgt Schreibfehler separat für jeden Befehlstyp — writeErrorBrightness für Strom-/Helligkeitsschreibvorgänge, writeErrorHueSat für set_hsv-Schreibvorgänge und writeErrorCt für set_ct_abx-Schreibvorgänge. Wenn ein Fehler auftritt:
- Bestätigen Sie, dass die Lampe eingeschaltet ist — alle
set_*-Befehle außerset_powerwerden nur akzeptiert, wenn die Lampe imon-Zustand ist. - Überprüfen Sie, dass der Farbtemperaturwert im modellspezifischen Bereich liegt (typisch 1700–6500 K für Farblampen, 2700–6500 K für Deckenleuchten, 2700–6000 K für ceiling3).
- Prüfen Sie die rohe Fehlermeldung in der TapHome-Service-Diagnose für den spezifischen Fehlercode der Lampe.
Änderungen aus der Yeelight-App werden nicht übernommen
Die Vorlage reagiert auf props-Benachrichtigungen der Lampe, sodass externe Änderungen normalerweise innerhalb einer Sekunde erscheinen. Falls nicht:
- Die Benachrichtigung kann eingetroffen sein, während der TCP-Socket wiederhergestellt wurde — der nächste Poll (Standard 10 s) synchronisiert den Zustand.
- Einige ältere Firmware-Versionen senden Benachrichtigungen nur, wenn aktiv ein Befehl gesendet wird. Aktualisieren Sie die Lampen-Firmware über die Yeelight-App.
- Die Lampe hat möglicherweise das 4-Verbindungslimit erreicht — reduzieren Sie die Anzahl gleichzeitiger Clients im LAN.
Yeelight-Geräte unterstützen nur 4 gleichzeitige TCP-Verbindungen und 60 Befehle pro Minute pro Verbindung. Wenn TapHome und ein anderes System (z. B. Home Assistant) dieselbe Lampe gleichzeitig pollen, kann die Kommunikation unzuverlässig werden. Verwenden Sie ein Poll-Intervall von 10 Sekunden oder höher.
