Danke hat zumindest wieder einen anderen Denkansatz gegeben.
$data=$_IPS['VALUE'];
SetValueString(35697,$data);
$Info = between('*', ',', $data );
//String Positionenauswerten
$strlen = strlen($data) -1; // korrektur der Stringlänge -1 für richtiges Resultat
// Zone Info
if ($Info == 'ZINFO')
{
// PWR Filter
$strPWRend = strpos($data, ",SRC")-1; // StringEnde PWRON, oder PWROFF, - das ,
$strPWRminus = - ($strlen - $strPWRend); // ergibt die Subtraktion vom String um hinter OFF oder ON zu landen
$PWR = substr($data, strpos($data, "PWR")+3, $strPWRminus); //-19 nicht wie berechnet -22 korrigiert in $strlen
// Zone Filter
$strZONend = strpos($data, ",PWR")-1;
$strZONminus = - ($strlen - $strZONend);
$ZON = substr($data, strpos($data,"ZON")+3, $strZONminus);
// Source Filter
$strSRCend = strpos($data, ",VOL")-1;
$strSRCminus = - ($strlen - $strSRCend);
$SRC = substr($data, strpos($data,"SRC")+3, $strSRCminus);
// Volume Filter
$strVOLend = strpos($data, ",MUT")-1;
$strVOLminus = - ($strlen - $strVOLend);
$VOL = substr($data, strpos($data,"VOL")+3, $strVOLminus);
// Mute Filter
$MUT = substr($data, strpos($data, "MUT")+3, -1 );
// Zonen
switch($ZON)
{
case 1:
$PWRz1 = $PWR;
$SRCz1 = $SRC;
$VOLz1 = $VOL;
$MUTz1 = $MUT;
break;
case 2:
$PWRz2 = $PWR;
$SRCz2 = $SRC;
$VOLz2 = $VOL;
$MUTz2 = $MUT;
break;
case 3:
$PWRz3 = $PWR;
$SRCz3 = $SRC;
$VOLz3 = $VOL;
$MUTz3 = $MUT;
break;
case 4:
$PWRz4 = $PWR;
$SRCz4 = $SRC;
$VOLz4 = $VOL;
$MUTz4 = $MUT;
break;
case 5:
$PWRz5 = $PWR;
$SRCz5 = $SRC;
$VOLz5 = $VOL;
$MUTz5 = $MUT;
break;
case 6:
$PWRz6 = $PWR;
$SRCz6 = $SRC;
$VOLz6 = $VOL;
$MUTz6 = $MUT;
break;
}
// STRING Ausgabe
SetValueString(46038, $Info);
SetValueInteger(44720, $ZON);
SetValueString(51301, $PWRz4);
SetValueInteger(52658, $SRCz4);
SetValueInteger(58538, $VOLz4);
SetValueString(11825, $MUTz4);
SetValueInteger(44415, $VOLz1);
Ich möchte mein Multiroomsystem auslesen bzw steuern. Glaube kaum das dies schon jemand gemacht hat, kommt aus den USA, z.m. hab ich nichts im Forum und bei Tante Google gefunden. Name ist CASATUNES. Loxone hat das ursprünglich vertrieben, es aber dann mit eigenem Code zum Loxone Musikserver umgeschrieben. Ich nutze noch die Originale Version.
Bin mir nicht sicher ob das nur mit vergleichen getan ist. da ja bei jeder änderung in irgend einer Zone, ob VOL, Source, ON/OFF oder Mute ein string per Clientsocket kommt. Dabei fehlen jedoch die Werte der anderen Zonen, da nur die gesendet wird in der etwas geändert wurde.
was ich nicht verstehe warum er im switch die anderen Werte totzdem übergiebt obwohl z.B ZON = 1 angesprochen wird.
Ich nehme mal an Du nutzt einen Clientsocket mit einer Registervariable und einem Skript.
genau so mach ich es, wird jedoch bislang alles im Script verarbeitet und nicht im Splitter, evtl gibt es da eine Lösung?
Danke