Geräteprofil · Licht
Yeelight
Hinweis: Dieses Profil beruht auf der Yeelight WiFi Light Inter-Operation Specification von Yeelink.
Voraussetzungen
- Ein Yeelight-Gerät (Color-Leuchtmittel, White, Lightstrip, Deckenleuchte) im lokalen Netz.
- „LAN-Steuerung” muss in der Yeelight-App eingeschaltet sein: Gerät öffnen → Zahnrad → LAN-Steuerung (je nach App-Version „Remote-Zugriff im LAN”). Ohne diesen Schalter ist Port 55443 geschlossen und nomos erreicht das Gerät nicht.
-
Prüfen lässt sich das von einem Rechner im selben Netz:
printf '{"id":1,"method":"get_prop","params":["power"]}\r\n' | nc <IP-des-Geräts> 55443Die Antwort lautet
{"id":1, "result":["on"]}. - Ein nomos Controller mit einem Daemon, der
RESOLVE_SYSVARSkennt (1.1.94 oder neuer) – das braucht die Farbsteuerung.
Einrichtung
- Dem Gerät im Router eine feste IP-Adresse geben
- Skills → Add-ons: Profil importieren
- Gerät anlegen und die IP-Adresse eintragen; der Port 55443 ist fest
Datenbereich
nomos hält eine ständige TCP-Verbindung und fragt alle 20 Sekunden sechs Werte ab; das Intervall lässt sich ändern.
- Ein/Aus (
state, zusätzlich alsactive) - Helligkeit (
level) in Prozent - Farbtemperatur (
color-temperature): im System in Mired, 154–588, entsprechend 6500–1700 K - Farbton (
hue) 0–359° und Sättigung (saturation) 0–100 % - Farbmodus (
colormode, ausgeblendet): Farbe, Farbtemperatur oder Farbton/Sättigung - Erreichbarkeit (
reachable): aus dem Zustand der TCP-Verbindung
Schreibbar sind Ein/Aus, Umschalten, Helligkeit, Farbtemperatur, Farbton, Sättigung und „aktuellen Zustand als Einschaltzustand speichern” (ausgeblendet).
Hinweise
- Warum je Wert eine eigene Abfrage: Yeelight antwortet auf
get_propmit einer Liste nach Position und laut Spezifikation mit einem Leerzeichen nach dem Komma ({"id":1, "result":["on", "100"]}). Nach Position zu lesen ist fehleranfällig. Das Profil schickt deshalb sechs einzelne Abfragen mit je eigener Kennung und ordnet jede Antwort über diese Kennung zu. Das sind 18 Anfragen pro Minute und bleibt unter dem Kontingent des Geräts (laut Spezifikation 60 pro Minute). Wer das Intervall verkürzt, kommt dem Kontingent näher. - Wie die Farbsteuerung funktioniert: Yeelight setzt Farbton und Sättigung nur gemeinsam (
set_hsv). Jeder der beiden Befehle schickt deshalb beide Werte; der unveränderte kommt aus der letzten Abfrage, die ihn in einer Hilfsvariablen ablegt (derselbe Weg wie beim Daikin-Profil). Daraus folgt:- Bis die erste Abfrage nach dem Start durch ist, fehlt der Bezugswert.
- Zwei Änderungen innerhalb etwa einer Sekunde können sich überschreiben.
- Wird die Farbe gleichzeitig in der Yeelight-App verstellt, arbeitet nomos bis zur nächsten Abfrage mit dem alten Stand.
- Alle Werte werden immer gemeldet, auch die gerade unwirksamen. Im Farbtemperatur-Modus liefert das Gerät weiter einen Farbton, im Farbmodus weiter eine Farbtemperatur. Was gerade gilt, sagt
colormode. - Helligkeit 0 nimmt das Gerät nicht an, der Bereich ist 1–100. Das Profil rechnet die Anzeige 0–100 % auf 1–100 um: 0 % ist die kleinste Helligkeit, nicht aus.
- Der Farbtemperaturbereich ist mit 1700–6500 K angenommen. Die Modelle unterscheiden sich (Deckenleuchten beginnen meist bei 2700 K, reine Color-Leuchtmittel haben teils 1700 K); weicht Ihr Modell ab, stimmt die Skalierung an den Rändern nicht. White-Modelle haben keine Farbe.
- Meldungen des Geräts von sich aus werden nicht ausgewertet. Yeelight schickt bei jeder Änderung eine
props-Meldung über dieselbe Verbindung. Ein Profil kann je Wert nur ein Suchmuster haben, und das ist hier für die Abfrage vergeben. Eine Änderung über die App oder den Schalter erscheint deshalb erst mit der nächsten Abfrage, also bis zu 20 Sekunden später. - Jeder Schaltbefehl verwendet einen Übergang von 500 ms (
"smooth"). - Das Gerät erlaubt höchstens vier gleichzeitige Verbindungen. nomos belegt eine davon dauerhaft.
- Nicht im Profil enthalten: Farbverläufe (
start_cf), Szenen (set_scene), Zeitschaltung (cron_add), relative Verstellung (set_adjust), Musikmodus, das Hintergrundlicht der Decken- und Screen-Modelle (bg_*) und das Nachtlicht.