Kennt jemand Yeelight Light Stripe?

jetzt kommt

arse error: syntax error, unexpected ‚‘, „smooth“, 500]}’’ (T_CONSTANT_ENCAPSED_STRING) in C:\IP-Symcon\scripts\12889.ips.php on line 6

:mad:

Zeig jetzt Mal den Code, bei der Fehlermeldung schätze ich du hast jetzt einfaches und doppeltes Hochkomma vermischt.
Michael

muss mal schnell die Kids ins Bett bringen

ich melde mich sobald ich wieder entlassen bin:)

dank dir für deine Mühe.

wie würde das denn mit JSON konvertieren aussehen?

du hattest mich schon einmal darauf hingewiesen, da ich allerdings nicht der Hellste in php bin, ist das für mich schwierig.

und mal so neben bei, ist zwar hier kein php-Kurs, aber in welcher Verbindung steht der „Punkt“ in dem Bereich?

Danke nochmals

Zum Punkt:
PHP: Zeichenketten-Operatoren - Manual

Zu den verschiedenen Anführungszeichen:
PHP: Strings - Manual

Das erste Beispiel zur Doku von json_encode zeigt es ganz gut.
Ist am Handy jetzt eher schwer ein Beispiel zu tippen :wink:
Aber anhand des Beispiels solltest du sehen wie dein Array aussehen muss.
Wichtig ist nur das Params wieder ein Array ist.
Michael

Danke Michael für deine Erläuterungen,

hier erst einmal mein Code so wie er jetzt aussieht.

<?

$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



?>

Remo

Jetzt fehlt der Punkt hinter $helligkeit :wink:
Michael

Was soll ich sagen

nun so etwas

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

ich werde noch wahnsinnig - Punkt vorne Punkt hinten…:mad::slight_smile:

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

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

$Line= json_encode($Data);
CSCK_SendText(45543 /*[Client Socket]*/, $Line."
"); 

wie ist denn so? also geht nicht da er mir direkt $helligkeit auf dem Client Socket sendet

Gruß Remo

Okay ich habe es,

es hat lange gedauert, aber dank deiner Hilfe läuft es jetzt.

hier der Code

$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."
");  

Ich dank dir

und einen schönen Abend

Grüße Remo

Fast perfekt, so sollte es laufen.

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

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

$Line= json_encode($Data);
CSCK_SendText(45543 /*[Client Socket]*/, $Line."
"); 

Das ganze etwas aufgebohrt:

$helligkeit = Getvalue(44698 /*[skripte\Hilfsscripte\Yeelight\Helligkeit]*/);
SendToYeelight('set_bright', array( $helligkeit,  'smooth',  500 ));

function SendToYeelight($method, $params)
$Data = Array(
    'id' => 1,
    'method' => $method,
    'params' => $params
);

$Line= json_encode($Data);
CSCK_SendText(45543 /*[Client Socket]*/, $Line."
"); 

So kannst du dann einfach die gewünschte Methode und die Parameter an die Funktion SendToYeelight übergeben.

Diese Funktionen kannst du in ein seperaten Script speichern und dann mit so einbinden:


include(IPS_GetScriptFile(14871));
$helligkeit = Getvalue(44698 /*[skripte\Hilfsscripte\Yeelight\Helligkeit]*/);
SendToYeelight('set_bright', array( $helligkeit,  'smooth',  500 ));

Michael

passt perfekt,

jetzt läuft es.

ach je, na das schau ich mir mal in Ruhe an, das mit den Funktionen ist ja super, gerade wenn man mehr solcher Komponenten verbaut.
Ich nehme mir dies mal an und werde berichten.

vielen Dank und einen schönen Abend

Grüße Remo

Kann man da ein Plugin daraus bauen - analog zu dem HUEs?
Wäre doch gut, wenn man diese im Webfrontend nutzen kann. Oder sogar im IPSlight?!

Nur um das im Webfront nutzten zu können Bedarf es ja nicht zwingend eines PHP Moduls. Da reicht es ja aus eine Variable anzulegen und dieser ein Aktionskript zuzuweisen. Bevor mann dann ein Modul baut müsste man sich erst mal darüber im klaren sein welche Variablen alle benötigt werden und vor allem müssen die Funktionen alle einwandfrei laufen. Wenn das erfüllt ist kann man dann aus den existenten Funktionen auch ein PHP Modul bauen.