Einbindung eines Yeelight-Gerätes in IPS.
Inhaltsverzeichnis
- 1. Funktionsumfang
- 2. Voraussetzungen
- 3. Software-Installation
- 4. Einrichten der Instanzen in IP-Symcon
- 5. Statusvariablen und Profile
- 6. WebFront
- 7. Aktionen
- 8. PHP-Befehlsreferenz
- 9. Anhang
- 10. Lizenz
- Empfangen und visualisieren der aktuellen Zustände in IPS.
- Steuerung über die Statusvariablen.
- Steuerung über Symcon Aktionen
- PHP-Funktionen für erweiterte Funktionen.
- IPS 6.1 oder höher
- Yeelight Gerät ( '3th party local control' muss aktiviert werden, siehe hier
Dieses Modul ist Bestandteil der IPSYeelight-Library.
Das Anlegen von neuen Instanzen kann komfortabel über die Instanz Yeelight Discovery Instanz erfolgen.
Wird Symcon allerdings unter Docker mit aktivem NAT betrieben, so müssen die Geräte Instanzen per Hand angelegt werden!
Entsprechend ist das Modul im Dialog 'Instanz hinzufügen' unter dem Hersteller 'Xiaomi' oder dem Schnellfilter 'Yeelight' zu finden.
Es wird automatisch eine 'Client Socket' Instanz erzeugt.
In dem sich öffnenden Konfigurationsformular muss die IP-Adresse des Gerätes bei 'Host' eingetragen werden und der Haken 'Aktiv' gesetzt sein.
Folgende Parameter sind in der 'Yeelight Device' Instanz zu konfigurieren:
Konfigurationsseite:
Eigenschaft | Typ | Standardwert | Funktion |
---|---|---|---|
SetSmooth | bool | false | Bei true wird immer eine Transitionzeit von 500ms bei Ansteuerung gesetzt |
HUESlider | bool | true | Aktiviert zwei Variablen für das WebFront welche einen HUE und Sat Slider enthalten |
Mode | integer | 0 | Varianten für den Modus, 0=Farbe, 1=Farbe + Nachtlicht, 2=Weiß + Nachtlicht |
Statusvariablen:
Folgende Statusvariablen werden automatisch angelegt, je nach Gerät können es auch weniger sein.
Name | Typ | Ident | Beschreibung |
---|---|---|---|
Status | bool | power | Status des Gerätes |
Helligkeit | integer | bright | Helligkeit in Prozent |
RGB Farbe | integer | rgb | RGB Farbwert |
Weiß | integer | ct | Weißton im Modus 'Weiß' von 1700K bis 6500K |
Aktueller Modus | integer | color_mode | 1 = RGB, 2 = Weiß, 3 = HSV |
HSV Sättigung | integer | sat | Sättigung in Prozent für HUE |
HSV Hue | string | hue | JavaScript für den HUE-Slider im WebFront |
Helligkeit Nachtlicht | integer | nl_br | Vom Gerät gemeldete Helligkeit Nachtlicht |
Profile:
Name | Typ | verwendet von Statusvariablen |
---|---|---|
Yeelight.WhiteTemp | integer | Weiß |
Yeelight.Mode | integer | Aktueller Modus |
Yeelight.ModeWNight | integer | Aktueller Modus |
Yeelight.ModeColorWNight | integer | Aktueller Modus |
Die direkte Darstellung und Steuerung im WebFront ist möglich.
Es gibt diverse Ziel(Instanz)-Spezifische Aktionen für die 'Yeelight Device' Instanz.
Diese Aktionen können sowohl in Ereignissen als auch Ablaufplänen verwendet werden.
Ebenso können die Aktionen über die Schaltfläche 'Befehl einfügen' im Skript-Editor in ein Skript eingefügt werden.
Abschließend stehen die Aktionen auch über den Eintrag 'Befehle testen' im Kontextmenü vom Objektbaum zur Verfügung.
Diese Aktionen sind speziell für die 'Yeelight Device' Instanz, weshalb als Ziel immer eine 'Yeelight Device' Instanz gewählt sein muss, damit die Aktionen zur Auswahl stehen.
Für alle 'bool' Rückgabewerte gilt:
Wurde der Befehl erfolgreich ausgeführt, wird true
zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und false
zurück gegeben.
Verfügt das Gerät über eine zweites 'Leuchtmittel' bzw. über eine Hintergrundfarbe,
so stehen fast alle Befehle hierzu ebenfalls zur Verfügung.
Da die Verwendung identisch ist, sind diese nicht weiter dokumentiert.
Die Befehle lauten z.B.
YEELIGHT_SetPower(...) => YEELIGHT_SetBgPower(...)
YEELIGHT_SetWhiteSmooth(...) => YEELIGHT_SetBgWhiteSmooth(...)
YEELIGHT_SetHSV(...) => YEELIGHT_SetBgHSV(...)
usw...
bool YEELIGHT_RequestState(integer $InstanzID)
Liest den Zustand des Gerätes und führt alle Statusvariablen nach.
bool YEELIGHT_SetWhite(integer $InstanzID, integer $Temperature)
Setzt den in '$Temperature' übergebenen Weißton.
Erlaubter Wertebereich ist 1700 bis 6500.
bool YEELIGHT_SetWhiteSmooth(integer $InstanzID, integer $Temperature, integer $Duration)
Setzt den in '$Temperature' übergebenen Weißton mit der in '$Duration' übergebenen Transitionzeit in Millisekunden.
Erlaubter Wertebereich ist 1700 bis 6500.
bool YEELIGHT_SetRGB(integer $InstanzID, integer $Red, integer $Green, integer $Blue)
Setzt die in '$Red', '$Green' und '$Blue' übergebenen Farben.
Erlaubter Wertebereich ist 0 bis 255.
bool YEELIGHT_SetRGBSmooth(integer $InstanzID, integer $Red, integer $Green, integer $Blue, integer $Duration)
Setzt die in '$Red', '$Green' und '$Blue' übergebenen Farben mit der in '$Duration' übergebenen Transitionzeit in Millisekunden.
Erlaubter Wertebereich ist 0 bis 255.
bool YEELIGHT_SetHSV(integer $InstanzID, integer $HUE, integer $Saturation)
Setzt die in '$HUE' und '$Saturation' übergebene Farbe.
Erlaubter Wertebereich ist für '$HUE' von 0 bis 359 und für '$Saturation' 1 bis 100.
bool YEELIGHT_SetHSVSmooth(integer $InstanzID, integer $HUE, integer $Saturation, integer $Duration)
Setzt die in '$HUE' und '$Saturation' übergebene Farbe mit der in '$Duration' übergebenen Transitionzeit in Millisekunden.
Erlaubter Wertebereich ist für '$HUE' von 0 bis 359 und für '$Saturation' 1 bis 100.
bool YEELIGHT_SetBrightness(integer $InstanzID, integer $Level)
Setzt die in '$Level' übergebene Helligkeit.
Erlaubter Wertebereich ist 0 bis 100.
bool YEELIGHT_SetBrightnessSmooth(integer $InstanzID, integer $Level, integer $Duration)
Setzt die in '$Level' übergebene Helligkeit mit der in '$Duration' übergebenen Transitionzeit in Millisekunden.
Erlaubter Wertebereich ist 0 bis 100.
bool YEELIGHT_SetMode(integer $InstanzID, integer $Mode)
bool YEELIGHT_SetPower(integer $InstanzID, bool $Value)
Schaltet das Gerät ein oder aus.
Erlaubte Werte für '$Value' sind 'true' zum ein- und 'false' zum ausschalten.
bool YEELIGHT_SetPowerSmooth(integer $InstanzID, bool $Value, integer $Duration)
Schaltet das Gerät ein oder aus, mit der in '$Duration' übergebenen Transitionzeit in Millisekunden.
Erlaubte Werte für '$Value' sind 'true' zum ein- und 'false' zum ausschalten.
bool YEELIGHT_SetToogle(integer $InstanzID)
bool YEELIGHT_SetToogleBoth(integer $InstanzID)
bool YEELIGHT_SetDefault(integer $InstanzID)
bool YEELIGHT_StartColorFlow(integer $InstanzID, integer $Loops, integer $RecoverState, string $Flow)
bool YEELIGHT_StopColorFlow(integer $InstanzID)
bool YEELIGHT_SetSleep(integer $InstanzID, integer $Minutes)
integer YEELIGHT_GetSleep(integer $InstanzID)
bool YEELIGHT_DelSleep(integer $InstanzID)
bool YEELIGHT_IncreaseBright(integer $InstanzID)
bool YEELIGHT_DecreaseBright(integer $InstanzID)
bool YEELIGHT_IncreaseWhiteTemp(integer $InstanzID)
bool YEELIGHT_DecreaseWhiteTemp(integer $InstanzID)
bool YEELIGHT_RotateColor(integer $InstanzID)
bool YEELIGHT_SetName(integer $InstanzID, string $Name)
Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:
IPS-Modul:
CC BY-NC-SA 4.0