Kennt jemand Yeelight Light Stripe?

Gibt es gerade im Angebot bei Gearbest und hat sogar eine offene API:

Hat damit jemand Erfahrung?

Ich schließe mich der Frage einfach mal an.
Ich find die ganze Yeelight Geschichte auch sehr interessant…

Wobei:

Bist du hier eigentlich weitergekommen?
Ich habe mir jetzt mal so eine Lampe geordert…
mal schauen wann die ankommt china

EDIT: gibt wohl manche die das einfach per JSON machen…

https://www.domoticz.com/forum/viewtopic.php?f=11&t=13016&sid=96cda4a0ec866ca7236f7160ba261da9&start=20

Vielleicht könnte man da auch ein Modul draus machen… aber ich glaub das würde ich nicht hinbekommen -.-

Hallo zusammen,

hat hier vielleicht schon jemand etwas neues zu Yeelight? Habe jetzt hier 4 RGB Lampen und würde diese sehr gerne per IPS steuern.
Leider fehlen mir die nötigen Kenntnisse, um ein Script bzw. Modul zu erstellen. Hier (GitHub - elberth90/yeelight-api-client: PHP client library for Yeelight API) scheint jemand schon etwas in php gemacht zu haben, nur wie binde ich dies in IPS ein?

Steuert jemand die Yeelight über IPS?

Merci und lieben Gruß
Adam

Hallo,

muss mich auch einmal anschließen. Habe ebenfalls zum Testen eine Yeelight geordert. Nun sitze ich hier mit der PDF aus dem ersten Post und komme nicht weiter.
Habe verschiedene Socket`s angelegt und die verschiedenen Ports ausprobiert.
Ein Client Socket mit Port 55443 gibt mir zumindest schon einmal eine Antwort, wenn ich die Lampe vom Handy bediene.
Leider reagiert sie nicht auf meine Commands.:mad:

Hat hier vielleicht einer eine Idee?

API PDF
Yeelight_Inter-Operation_Spec.pdf (315 KB)

Debug.PNG

Versuch von mir

<?


CSCK_SendText(45543, '{"method":"props","params":{"power":"off"}}<CR><LF>');
 

 //Start writing your scripts between the brackets



?>

Danke

PS: im Bild passt der Port nicht, der ist wie oben beschrieben

Auf Seite 10 des PDF ist ein tolles Beispiel:

{ „id“: 1, „method“: „set_power“, „params“:[„on“, „smooth“, 500]}


$Line = '{ "id": 1, "method": "set_power", "params":["on", "smooth", 500]}';

CSCK_SendText(45543, $Line."
");

Kurze Erklärung:

id muss laut Anleitung mitgesendet werden.
Zeilen müssen mir
abgeschlossen werden.
Das ist nur eine Darstellung in der Console, ebenso wie \r und
auch nur eine Schreibweise sind für die Zeichen ‚Return‘ + ‚Newline‘.

Achtung:
geht nur in doppelten Anführungszeichen!

method power gibt es nicht, nur set_power.
params muss ein Array ( eckige Klammern) sein und kein Objekt ( geschweifte Klammern).

Damit solltest du jetzt eigentlich weiter kommen.

Um die $Line immer korrekt zu füllen, empfehle ich das als Array zu erstellen und dann in JSON zu konvertieren.

$Data = Array(
    'id' => 1,
    'method' => 'set_power',
    'params' => Array(
            'on',
            'smooth',
            500
	        )
	);

$Line= json_encode($Data);
CSCK_SendText(45543, $Line."
");

Michael

Danke Michael,

ooh da bin ich noch weit von entfernt, dieses so umzusetzen. Ich danke dir aber für diese Antwort. Ich glaube für meine Zwecke ist das jetzt völlig ausreichend.
Erste Probe - On Off funktioniert und der User ist Happy :):):slight_smile:

Ich probier mal ein wenig, mal schauen was man alles machen kann

nochmals großes Dankeschön

Das funktioniert schon mal super! Ich hab dies mit der Desk Lamp probiert! Es wäre genial, wenn ich so auch den Status der Lampe abfragen kann, bzw. in IPS auswerten kann, wenn sie Manuell oder über andere Wege geschaltet wird. Die Frage wäre, wie ich die Rückgabewerte in variablen schreiben kann.

Indem du das empfangene Datenpaket auf
trennst.
Und das dann mit json_decode($data,true); in ein Array konvertierst.
Was dann welcher Wert bedeutet, steht in dem PDF.
Michael

Hallo zusammen,

auch ich habe eine RGBW-Bulb geordert und werde mir das ganze ansehen sobald diese da ist… Hat jemand etwas gesehen, ob es auch möglich ist die Gruppen (die man angeblich über die App definieren kann) via Symcon zu schalten?

Grüße!

Das müsste doch über das xiaomi Modul funktionieren.
Voraussetzung:
Xiaomi Gateway
Xiaomi IPS Modul

Gesendet von meinem Redmi 4X mit Tapatalk

Hallo mastermind1,

kannst du das etwas genauer erklären?
Ich dachte das Gateway benötigt man nur für andere Komponenten des Herstellers, da diese nicht via WLAN kommunizieren.

Und woher bekomme ich das IPS-Modul bzw. wie binde ich das in IPS ein?

Vielen Dank.

Sorry … Du hast Recht…
Ich steige bei xiaomi nicht mehr durch…
(Hab zuviel davon ) :wink:
Gesendet von meinem Redmi 4X mit Tapatalk

Hallo,

danke an Michael für die richtigen Hinweise. Nur dadurch habe ich es jetzt geschafft, den aktuellen Status (an/aus) der Lampen in IPS zu haben.

Die Frage wäre, wie ich die Rückgabewerte in variablen schreiben kann.

Hier mein Weg:

Voraussetzung:

  1. Clientsocket mit der IP der Lampe und dem Socket 55443
  2. Cutter mit dem Clientsocket aus 1. als übergeordneter Instanz. Einstellung Cutter: Bei „Benutze Zeichen für Schnitte“ habe ich aus der Liste R:CRLF gewählt.
  3. Registervariable mit dem Cutter aus 2. als übergeordnete Instanz und als bei Ziel das Script 5.
  4. Booleanvariable
  5. mein Script (bitte nicht hauen, bin Anfänger :slight_smile: :

Müsste bei euch auch klappen, hoffe ich.

Lieben Gruß
Adam



<?

//die aus dem Cutter in JSON kommende Zeile in ein Array zerlegen 

$Line=json_decode($IPS_VALUE,true);

//print_r ist zum anschauen des Arrays
//print_r ($Line);
 
//den Parameter on oder off aus dem array unter params power ziehen und in variable $temp2 schreiben.  
$temp2 = $Line['params']['power'];

//Test ob hier on oder off ankommt über echo
//echo $temp2;

//zum Test habe ich die antwort von $temp2 in einen Stringvariable mit id 40099 geschrieben
//Setvalue(40099 /*[Yeelight\Test auslesen]*/,$temp2);

//falls $temp2 on ist die Booleanvariable 4.Punkt (hier 21052) auf true setzen, falls off auf false setzen
if ($temp2 == 'on') {
    Setvalue(21052 /*[Yeelight\Lampen\Yeelight Lampe 1\Status]*/,true);
} 
elseif ($temp2 == 'off') {
    Setvalue(21052 /*[Yeelight\Lampen\Yeelight Lampe 1\Status]*/,false);
}
?>

Kann mir bitte mal jemand auf die Sprünge helfen, ich stehe auf dem Schlauch und weiß nicht weiter.:mad:

folgendes Script:

wichtig hier ist der Helligkeitswert.

<?

$helligkeit = 44698 /*[skripte\Hilfsscripte\Yeelight\Helligkeit]*/;


$Line = '{ "id": 1, "method": "set_bright", "params":['$helligkeit', "smooth", 500]}';
//$Line = '{ "id": 1, "method":"set_ct_abx","params":[3500, "smooth", 500]}';

CSCK_SendText(45543, $Line."
");  
 //Start writing your scripts between the brackets



?>

und das kommt als Fehler

Parse error: syntax error, unexpected ‚$helligkeit‘ (T_VARIABLE) in C:\IP-Symcon\scripts\12889.ips.php on line 6

dank euch

Kann es sein das bei dir ein Getvalue hinter $helligkeit = fehlt? Du willst ja den Wert von 44698 haben und nicht die Helligkeit auf 44698 setzten, oder?

Gesendet von iPhone mit Tapatalk Pro

recht hast du,

war mein Fehler, hatte es nur schnell reingeschrieben:mad:

<?

$helligkeit = Getvalue(44698 /*[skripte\Hilfsscripte\Yeelight\Helligkeit]*/);


$Line = '{ "id": 1, "method": "set_bright", "params":['$helligkeit.', "smooth", 500]}';
//$Line = '{ "id": 1, "method":"set_ct_abx","params":[3500, "smooth", 500]}';

CSCK_SendText(45543, $Line."
");  
 //Start writing your scripts between the brackets



?>

so aber

trotzdem kommt

Parse error: syntax error, unexpected ‚$helligkeit‘ (T_VARIABLE) in C:\IP-Symcon\scripts\12889.ips.php on line 6

Dan fehlt der Operand zwischen der Zeichenkette und der Variable (Punkt).
$Line = ‚{ „id“: 1, „method“: „set_bright“, „params“:[‘.$helligkeit.’, „smooth“, 500]}’;
Klare Empfehlung hier, das ganze als Array aufbauen und dann mit json_encode in diese Zeichenkette wandeln.
Erleichtert später die Arbeit wenn du z.B. eine andere Methode als set_bright nutzen willst.
http://php.net/manual/de/function.json-encode.php
Michael

???

Danke für deine schnelle Hilfe, aber wie genau meinst du das?

Danke

hab es gesehen

ich versuche gleich einmal