Squeezebox Frage Nr. 362517

Hallo Gemeinde,

ich werde als PHP Neuling ja immer mutiger :slight_smile:

Wenn ich allerdings ein kleines script nach 5 stunden immer noch nicht zum laufen bekomme, muß ich hier mal fragen ^^

Ich möchte eigentlich nur die volume meiner squeezbox speichern, um diese nach einer Durchsage wiederherzustellen (Playliste natürlich auch…aber das erst, wenn ich die lautstärke mal im Griff habe…wird ja dann copy and paste)

Kann einer von euch meinen Fehler finden ?

die variable „savedvolume“ wird wunderbar aktualisiert…auch so, wie es die Squeezebox verstehen sollte :
’ mixer volume 4 ’

Hier mal das script bis jetzt…alles unwichtige habe ich mal ausgeklammert, damit ihr es besser seht :

<?
//$box_mac = "00:04:20:27:c0:f6";
//$power = getvalueboolean(16061 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Power Status]*/);
//$playlist = getvaluestring(38384 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\Playlist]*/);
$volume = getvalueinteger(25344 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\Volume\Volume]*/);
$savedvolume = setvaluestring(22696 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\Volume\savedvolume]*/,"' mixer volume " .$volume. " '");
$vol = getvaluestring(22696 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\Volume\savedvolume]*/);
//$savedplaylist = setvaluestring(42599 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\savedplaylist]*/,$playlist);

function slim_text($box , $text1 , $text2 , $time)
    {
     $TX_BUF = $box." display " .rawurlencode($text1)." ".rawurlencode($text2)." ".$time.chr(13);
     //Etwas über den COM Port senden
     $result = CSCK_SendText(41329 /*[Squeezboxserver]*/, $TX_BUF);
    }

if ($power == true)

     {
	  //CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' button stop '.chr(13));
     //SetValue(37863 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Playcontrol]*/,0);
     //CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' mixer volume 80 '.chr(13));
     //CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' playlist play '.rawurlencode("d:/shares/Music/Fred/Fred_tanken.wav").chr(13));
     //IPS_Sleep(6000);
	  CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.$vol.chr(13));
	  //CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' playlist play '.rawurlencode($savedplaylist).chr(13));
	  //CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' button play '.chr(13));
	  //SetValue(37863 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Playcontrol]*/,3);
	  }
	  
	  else
	  
	  {
	  //ips_sleep(5);
	  }



?>

Variable „savedvolume“ wird aktualisiert, aber nicht wieder zum Radio übertragen bzw. das radio bleibt auf durchsagelautstärke „80“, sollte „4“ haben

Viele Dank für die Hilfe

LG
Sascha

Nachtrag :

konnte vorher nicht schlafen…soweit hab ich es jetzt hinbekommen.
Einzig und allein bei einem Ordner abspielen habe ich noch keinen weg gefunden, wie er nach der Durchsage wieder bei dem Titel weitermacht, den er vor der Durchsage gespielt hat. (Momentan fängt die Playliste natürlich wieder bei Track 1 an)

Hier mal mein Script für die Durchsagen:

<?
$box_mac = "00:04:20:27:c0:f6";
$power = getvalueboolean(16061 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Power Status]*/);
$playlist = getvaluestring(42599 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\savedplaylist]*/);
$volume = getvalueinteger(25344 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Links\Volume\Volume]*/);
$savedvolume = ' mixer volume '.$volume.' ';

function slim_text($box , $text1 , $text2 , $time)
    {
     $TX_BUF = $box." display " .rawurlencode($text1)." ".rawurlencode($text2)." ".$time.chr(13);
     //Etwas über den COM Port senden
     $result = CSCK_SendText(41329 /*[Squeezboxserver]*/, $TX_BUF);
    }

if ($power == true)

     {
	  CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' button stop '.chr(13));
     SetValue(37863 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Playcontrol]*/,0);
     CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' mixer volume 80 '.chr(13));
     CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' playlist play '.rawurlencode("d:/shares/Music/Fred/Fred_tanken.wav").chr(13));
     IPS_Sleep(3000);
	  CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.$savedvolume.chr(13));
	  CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' playlist play '.rawurlencode($playlist).chr(13));
	  CSCK_SendText(41329 /*[Squeezboxserver]*/, $box_mac.' button play '.chr(13));
	  SetValue(37863 /*[Mein Haus\Multimedia\Geräte\Squeezebox Radio\Radio Rechts\Playcontrol]*/,3);
	  }
	  
	  else
	  
	  {
	  ips_sleep(5);
	  }



?>

LG
Sascha

Hallo Sascha,

was mir zunächst auffällt ist, dass Du die SQB Funktionen noch nicht verstanden hast.
Warum benutzt Du immer CSCK_SendText, wenn Du doch einfach mit include ‚sqb_fkt.ips.php‘; arbeiten kannst.
Beispiel:[i]
CSCK_SendText(41329 /[Squeezboxserver]/, $box_mac.’ mixer volume 80 '.chr(13));

SqueezeVolume($box_mac, 80);[/i]

Was Du möchtes geht dann mit den Funktionen:
<playerid> playlist save <filename> <taggedParameters>
<playerid> playlist resume <playlist> <taggedParameters>

Dazu hatte ich schonmal ein Beispiel gepostet.

Fortgeschritten auch mal das anschauen:
http://localhost:9000/html/docs/help.html
und dann unter: Hilfe > Technische Informationen > Command Line Interface

Hier findest Du das Command Line Interface.

Hallo Thomas,

ja, du hast recht…verstanden habe ich noch nicht alles…aber eben hat es ein „klick“ gegeben… :slight_smile:
Ich werde morgen mal meine Scripte umschreiben :slight_smile:

Vielen Dank

LG
Sascha

Immer gern und viel Erfolg.:wink: