Squeezebox / Squeezeserver Skript

Ja, diese Passage habe ich als letzten Block vor dem „?>“.

//===========================================================================
// Antwort aus Playlistenausleseskript
//===========================================================================

echo 'Testoutput: Array0: ' . $array[0] . ' - Array1: ' . $array[1] . ' - Array2: ' . $array[2];

if($array[0] == 'playlists' and $array[1] == 'tracks' and $array[2] == 0)
{
	SetValue(23336 /*[Haus\1. Obergeschoss\Schlafzimmer\Squeezebox\Wiedergabelisten Inhalte\Wiedergabelisten (Rohdaten)]*/, $antwort);
}

?>

Ich habe noch das echo zur Diagnose eingebaut und wenn ich auf eine Wiedergabeliste im WebFront klicke dann sehe ich folgendes im Meldungsfenster.

Danke für die Hilfe & Gruß
Thorsten

Bildschirmfoto 2012-02-26 um 17.06.06.png

Schwierig hier was zu erkennen da ja über diese ECHO-Ausgabe alle möglichen Ausgaben erfolgen die von der RegVar kommen.

Da deine Playlisten ja über einen Klick im Webfront auf den entsprechenden Button gestartet werden könnte das Problem auch noch im Aufruf-Kommando liegen mit der die Rohdaten-Var gefüllt wird.

Im Wiedergabelisten_starten-Skript befindet sich bei ca. Zeile 52 folgender Code

 // ==========================================================
 // Wiedergabelisteninhalt mit $id auslesen
 // ==========================================================
 $cmd = "playlists tracks 0 100 playlist_id:$SQ_Playlist_ID";
 CSCK_SendText(SqueezeServer, $cmd.chr(13));
 IPS_Sleep(1000);
 $playlist_raw = GetValue($einlese_id);
 $playlist_array_raw =  explode ( ' ', $playlist_raw );

In den ersten beiden Zeilen wird der Inhalt der entsprechenden Playliste angefordert der im Auswerteskript dann bei vorhin besprochen Part in die Variable „Wiedergabelisten (Rohdaten)“ geschrieben wird.

Mit IPS_Sleep(1000) warte ich dann zur Sicherheit 1 Sekunde und hole die Daten dann zur weiteren Bearbeitung nach $playlist_raw.

Was ich mir jetzt noch vorstellen kann ist das die 1000ms nicht ausreichen die im Skript gewartet wird um hier weiterzuarbeiten.

Off Topic:

Mich wundert es immer wieder das ich noch weiß was ich damals getippt habe :smiley:

Vielleicht kommen wir hier auf das Problem. Setze mal den IPS_Sleep auf 2000.

Hallo,

hier die Info was bei mir der Fehler war.

Ich habe im Cutter vergessen „0D“ als rechtes Trennzeichen einzutragen.
Hätte ich den Screenshot genauer betrachtet, hätte mir (und Werner) das etwas Analysezeit erspart :rolleyes:.

Gruß
Thorsten

Hallo Werner,

hättest du ein bsp. für mich wie ein Auswertscript für mehrere Räume(Boxen)
aussieht?

mfg
Andi

Zb. so? Das ist das Skript was die Registervariable auswertet.

<?

include "12186.ips.php";		      														  // Squeezefunktions-Sammlung

$antwort = $IPS_VALUE;


$array = explode ( ' ', $antwort ); // Antwortstring in Array umwandeln

$array[0] =  urldecode ( $array[0] ); // MAC in lesbares Format umwandeln

// Variablen aus der RegVar in die entsprechenden Variablen von IPS eintragen

// ============================
// SqueezeRadio Squeeze_HP_Touch_Wohnzimmer
// ============================

if($array[0] == Squeeze_HP_Touch_Wohnzimmer) {

	// Powertaste abfragen
	if($array[1] == 'power') {
		if ($array[2] == 1) {
			SetValue(44202 /*[Audio\Musik Wohnzimmer\HP Touch\Power]*/, true);
		} else {
			SetValue(44202 /*[Audio\Musik Wohnzimmer\HP Touch\Power]*/, false);
		}
	SetValue(20812 /*[Audio\Musik Wohnzimmer\HP Touch\MAC]*/, $array[0]); //MAC in Variable
	}

	//Lautstärke abfragen
	if($array[1]=='prefset' and $array[3]=='volume') {
		SetValue(18526 /*[Audio\Musik Wohnzimmer\HP Touch\Volume]*/, urldecode($array[4]));
		SetValue(20812 /*[Audio\Musik Wohnzimmer\HP Touch\MAC]*/, $array[0]); //MAC in Variable
	}

   	if($array[1]=='prefset' and $array[3]=='repeat') {
		SetValue(14196 /*[Audio\Musik Wohnzimmer\Classic\Wiederholung]*/, $array[4]);
	}

	if($array[1]=='prefset' and $array[3]=='shuffle') {
		SetValue(46346 /*[Audio\Musik Wohnzimmer\Classic\Zufallswiedergabe]*/, $array[4]);
	}

	//Titel-Tag
	if($array[1]=='playlist' and $array[2]=='newsong') {
		SetValue(37545 /*[Audio\Musik Wohnzimmer\HP Touch\Aktueller Titel]*/ , utf8_decode(urldecode($array[3])));
		SetValue(20812 /*[Audio\Musik Wohnzimmer\HP Touch\MAC]*/ , $array[0]); //MAC in Variable
		cover(Squeeze_HP_Touch_Wohnzimmer, 44845 /*[Audio\Musik Wohnzimmer\HP Touch\Cover]*/); // Cover anzeigen
		$box = Squeeze_HP_Touch_Wohnzimmer;
      $cmd = "status - 1 subscribe:2";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}

	// Taste 6
	if($array[1] == 'button' and $array[2] == 'preset_6.single') {
		$toogle =!GetValue(44707 /*[Objekt #44707 existiert nicht]*/);
		SetValue(44707 /*[Objekt #44707 existiert nicht]*/ , $toogle);
	}

	// Steuerungstasten im Webfront aktualisieren
	if($array[1]=='play') {
	   SetValue(25049 /*[Audio\Musik Wohnzimmer\HP Touch\Steuerung]*/, 2);
	}
	if($array[1]=='stop') {
	   SetValue(25049 /*[Audio\Musik Wohnzimmer\HP Touch\Steuerung]*/, 0);
	}
	if($array[1]=='pause' and $array[2]==1) {
	   SetValue(25049 /*[Audio\Musik Wohnzimmer\HP Touch\Steuerung]*/, 1);
	}
	if($array[1]=='pause' and $array[2]==0) {
	   SetValue(25049 /*[Audio\Musik Wohnzimmer\HP Touch\Steuerung]*/, 2);
	}

}
if($array[0] == Schlafzimmer) { 			// Schlafzimmer

// Powertaste abfragen
if($array[1] == 'power') {
	if ($array[2] == 1) {
		SetValue(44741 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\Power]*/ , true);
	} else {
		SetValue(44741 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\Power]*/ , false);
	}
SetValue(29906 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\MAC SQ Schlafzimmer]*/ , $array[0]); //MAC in Variable
}

//Lautstärke abfragen
if($array[1]=='prefset' and $array[3]=='volume') {
	SetValue(13917 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\Lautstärke]*/ , urldecode($array[4]));
	SetValue(29906 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\MAC SQ Schlafzimmer]*/ , $array[0]); //MAC in Variable
}

//Tag
if($array[1]=='playlist' and $array[2]=='newsong') {
	SetValue(47945 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\Tag]*/ , urldecode($array[3]));
	SetValue(29906 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\MAC SQ Schlafzimmer]*/ , $array[0]); //MAC in Variable
}

//Wlan-Empfang
if($array[1]=='signalstrength') {
	SetValue(57022 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\Wlan-Empfang]*/ , urldecode($array[2]));
	SetValue(29906 /*[Räume\1.OG\Schlafzimmer\Radio Schlafzimmer\MAC SQ Schlafzimmer]*/ , $array[0]); //MAC in Variable
}
}


if($array[0] == Wohnzimmer) {          // Wohnzimmer

	$box = Wohnzimmer;

	// Powertaste abfragen
	if($array[1] == 'power') {
		if ($array[2] == 1) {
			SetValue(56565 /*[Audio\Musik Wohnzimmer\Classic\Power]*/, true);
		} else {
			SetValue(56565 /*[Audio\Musik Wohnzimmer\Classic\Power]*/, false);
		}
	SetValue(54149 /*[Audio\Musik Wohnzimmer\Classic\MAC]*/, $array[0]); //MAC in Variable
	}

	//Lautstärke abfragen
	if($array[1]=='prefset' and $array[3]=='volume') {
		SetValue(31417 /*[Audio\Musik Wohnzimmer\Classic\Volume]*/, urldecode($array[4]));
		SetValue(54149 /*[Audio\Musik Wohnzimmer\Classic\MAC]*/, $array[0]); //MAC in Variable
	}

   if($array[1]=='prefset' and $array[3]=='repeat') {
		SetValue(14196 /*[Audio\Musik Wohnzimmer\Classic\Wiederholung]*/, $array[4]);
	}

	if($array[1]=='prefset' and $array[3]=='shuffle') {
		SetValue(46346 /*[Audio\Musik Wohnzimmer\Classic\Zufallswiedergabe]*/, $array[4]);
	}

	//Titel-Tag aktualisieren
	if($array[1]=='playlist' and $array[2]=='newsong') {
		SetValue(46039 /*[Audio\Musik Wohnzimmer\Classic\Aktueller Titel]*/ , utf8_decode(urldecode($array[3])));
		SetValue(54149 /*[Audio\Musik Wohnzimmer\Classic\MAC]*/ , $array[0]); //MAC in Variable
		SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 2); // Button auf play

	  // Subscripe auf entsprechende Box für Anzeige des Laufzeitbalkens und Cover oder Radioartwork laden
 		$playlist = GetValueFormatted(10419 /*[Audio\Auswertung Squeezeboxen\Wiedergabelisten\Wiefergabelisten Wohnzimmer]*/);
		echo $playlist;
		if(substr($playlist, 0, 5) == 'Radio') {
	      $cmd = "status - 1 subscribe:0";
	  		artwork_url(Wohnzimmer); // Hole Cover/Artwork URL von Radiosendern
			//IPS_LogMessage( "Radio", "Artwork");

		}
		else
		{
	      $cmd = "status - 1 subscribe:2";
	  		cover(Wohnzimmer, 29942 /*[Audio\Musik Wohnzimmer\Classic\Cover]*/); // Cover anzeigen
			//IPS_LogMessage( "Radio", "Cover");
		}
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}

	// Steuerungstasten im Webfront aktualisieren
	if($array[1]=='play') {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 2);
	}
	if($array[1]=='stop') {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 0);
	   $box = Wohnzimmer;
      $cmd = "status - 1 subscribe:0";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
	if($array[1]=='pause' and $array[2]==1) {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 1);
	   $box = Wohnzimmer;
      $cmd = "status - 1 subscribe:0";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
	if($array[1]=='pause' and $array[2]==0) {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 2);
	   $box = Wohnzimmer;
      $cmd = "status - 1 subscribe:2";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
		if($array[1]=='button' and $array[2]=='jump_rew') {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 4);
	}
	if($array[1]=='button' and $array[2]=='jump_fwd') {
	   SetValue(15207 /*[Audio\Musik Wohnzimmer\Classic\Steuerung]*/, 3);
	}

	if($array[1]=='status' and $array[4]=='subscribe%3A2') {
		$time_array_final = Array();
		foreach($array as $item)
		{
		    $item = utf8_decode(urldecode($item));
		    $chunks = explode(":", $item);
		    if($chunks[0] == "time")
		    {
			   SetValue(55869 /*[Audio\Musik Wohnzimmer\Classic\akt. Position]*/, date('i:s', $chunks[1]));
            SetValue(56305 /*[Audio\Musik Wohnzimmer\Classic\akt. Position]*/, sprintf('%01.0f', $chunks[1]));
		    }
		     if($chunks[0] == "duration")
		    {
			   SetValue(35955 /*[Audio\Musik Wohnzimmer\Classic\Länge]*/, date('i:s', $chunks[1]));
            SetValue(41052 /*[Audio\Musik Wohnzimmer\Classic\Länge]*/, sprintf('%01.0f', $chunks[1]));
		    }
         if(GetValue(35955 /*[Audio\Musik Wohnzimmer\Classic\Länge]*/) !== "00:00") {
//			   slider(37689 /*[Audio\Musik Wohnzimmer\Classic\Slider Position]*/, 100/GetValue(41052 /*[Audio\Musik Wohnzimmer\Classic\Länge]*/)*GetValue(56305 /*[Audio\Musik Wohnzimmer\Classic\akt. Position]*/), GetValue(55869 /*[Audio\Musik Wohnzimmer\Classic\akt. Position]*/));
  				slider2(30479 /*[Audio\Musik Wohnzimmer\Classic\Position neu]*/, 100/GetValue(41052 /*[Audio\Musik Wohnzimmer\Classic\Länge]*/)*GetValue(56305 /*[Audio\Musik Wohnzimmer\Classic\akt. Position]*/));

			}
		}
     

	}
	 // Radio-Artwork aus Array holen und in HTML-Tag verpacken
	if($array[1]=='status' and $array[4] == 'tags%3AK') {
		artwork_img(29942 /*[Audio\Musik Wohnzimmer\Classic\Cover]*/, $array);
		//print_r($array);
		//IPS_LogMessage("Squeeze", $array[32]);
	}
}




// Wiedergabelisten aus Squeezeserver nach IPS-Variable
if($array[0] == 'playlists') {
	if($array[1] == '0') {

		// Associations löschen
		$Playlists = IPS_GetVariableProfile(".SQ_Playlist") ;                     // Variablenprofil in Array schreiben
		$CountPlaylists = count ($Playlists['Associations']);                     // Anzahl Assoziationen auslesen

		for($del = 1; $del < $CountPlaylists + 1; $del++) {
			IPS_SetVariableProfileAssociation(".SQ_Playlist", $del, "", "", -1);       // Rekursiv überschreiben
		}

		IPS_Sleep(500);                                                           // IPS zeit geben die Ass. zu löschen

		// Associations mit Wiedergabelisten aus Squeezeserver füllen
		// array besteht aus "playlist / startwert / endwert / playlistname / playlist_id / ..... / chr(13)
		// die ersten 3 Werte und das chr(13) wird entfernt
		// durch 2 geteilt und 1 dazu da array bei 1 gebinnt, ergibt anzahl der Playlisten ((count($array)-4)/2)+1
		for($x=1; $x < ((count($array)-4)/2)+1; $x++ ) {
			$y = ($x*2)+2;
			$playlist = urldecode ( substr ($array[$y], 11) );


			$color = -1; // Grundfarbe transparent

			if(substr($playlist, 0, 5) == 'Radio') {
			   $color = 0xAAFF00; // grün
			}
			if(substr($playlist, 0, 8) == 'Relaxing') {
			   $color = 0xFF7F00; // orange
			}
			if(substr($playlist, 0, 7) == 'Klassik') {
			   $color = 0xFF2AAA; // lila
			}


			$playlist_id = urldecode ( substr ($array[$y-1], 5 ) );
			IPS_SetVariableProfileAssociation(".SQ_Playlist", $x, $playlist, $playlist_id, $color);
		}

	}
}

// Wiedergabelistenverarbeitung anstossen wenn eine neue Wiedergabeliste
// angelegt und benannte wurde
if($array[0] == 'playlists') {
	if($array[1] == 'rename') {
      $cmd = "playlists 0 30";
		CSCK_SendText(SqueezeServer, $cmd.chr(13));                               // Playlists abrufen
	}
}


// Wiedergabelistenprofil aktualisieren wenn im Squeezeserver gelöscht wurde
if($array[0] == 'playlists') {
	if($array[1] == 'delete') {

		// alle Associations löschen da sonst die letzte stehen bleibt
		$Playlists = IPS_GetVariableProfile(".SQ_Playlist") ;                     // Profil in Array schreiben
		$CountPlaylists = count ($Playlists['Associations']);                     // Anzahl Associations

		for($del = 1; $del < $CountPlaylists + 1; $del++) {
			IPS_SetVariableProfileAssociation(".SQ_Playlist", $del, "", "", -1);       // entsprechend Anzahl löschen / überschreiben
		}

		IPS_Sleep(1000);

      $cmd = "playlists 0 30";
		CSCK_SendText(SqueezeServer, $cmd.chr(13));                               // Playlists abrufen

		IPS_Sleep(1000);

		// Associations mit Wiedergabelisten aus Squeezeserver füllen
		// array besteht aus "playlist / startwert / endwert / playlistname / playlist_id / ..... / chr(13)
		// die ersten 3 Werte und das chr(13) wird entfernt
		// durch 2 geteilt und 1 dazu da array bei 1 gebinnt, ergibt anzahl der Playlisten ((count($array)-4)/2)+1
		for($x=1; $x < ((count($array)-4)/2)+1; $x++ ) {
			$y = ($x*2)+2;
			$playlist = urldecode ( substr ($array[$y], 11) );


			$color = -1; // Grundfarbe transparent

			if(substr($playlist, 0, 5) == 'Radio') {
			   $color = 0xAAFF00; // grün
			}
			if(substr($playlist, 0, 8) == 'Relaxing') {
			   $color = 0xFF7F00; // orange
			}
			if(substr($playlist, 0, 7) == 'Klassik') {
			   $color = 0xFF2AAA; // lila
			}



			$playlist_id = urldecode ( substr ($array[$y-1], 5 ) );
			IPS_SetVariableProfileAssociation(".SQ_Playlist", $x, $playlist, $playlist_id, $color);

		}
	}
}

// abgeschlossenen Resan im Webfront anzeigen und Statistik aktualisieren
if($array[0] == 'rescan') {
	if($array[1] == 'done') {

	   WFC_SendNotification(28829 /*[WebFront Configurator]*/, "Squeezeserver", "Archivscan abgeschlossen", "Information", 0);

		// Statistikskript anstossen
	   IPS_RunScript(30894 /*[Audio\Musik Wohnzimmer\HP Touch\Squeezeserver Statistik]*/);			                                            // Statistikauswertung anstosssen

	}
}

// Statistik aus Squeezeserver nach IPS durch Statistikskript
if($array[0] == 'info') {
	if($array[1] == 'total') {
	   switch ($array[2]) {
	      case "artists":
	         SetValue(22740 /*[Audio\Musik Wohnzimmer\HP Touch\Squeezeserver Statistik\Interpreten]*/, $array[3]);
			   WFC_SendNotification(28829 /*[WebFront Configurator]*/, "Squeezeserver", "Statistik aktualisiert", "Information", 0);
			break;
			case "genres":
	         SetValue(30388 /*[Audio\Musik Wohnzimmer\HP Touch\Squeezeserver Statistik\Genres]*/, $array[3]);
			break;
			case "albums":
	         SetValue(45577 /*[Audio\Musik Wohnzimmer\HP Touch\Squeezeserver Statistik\Albums]*/, $array[3]);
			break;
			case "songs":
	         SetValue(15540 /*[Audio\Musik Wohnzimmer\HP Touch\Squeezeserver Statistik\Titel]*/, $array[3]);
			break;
		}
	}
}

if($array[0] == Sauna) {          // Sauna

	$box = Sauna;


	// Powertaste abfragen
	if($array[1] == 'power') {
		if ($array[2] == 1) {
			SetValue(36236 /*[Audio\Musik Sauna\Power]*/, true);
			SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2);
		} else {
			SetValue(36236 /*[Audio\Musik Sauna\Power]*/, false);
			SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 1);
		}
	SetValue(15542 /*[Audio\Musik Sauna\MAC]*/, $array[0]); //MAC in Variable
	}

	//Lautstärke abfragen
	if($array[1]=='prefset' and $array[3]=='volume') {
		SetValue(24874 /*[Audio\Musik Sauna\Volume]*/, urldecode($array[4]));
		SetValue(15542 /*[Audio\Musik Sauna\MAC]*/, $array[0]); //MAC in Variable
	}

   if($array[1]=='prefset' and $array[3]=='repeat') {
		SetValue(57375 /*[Audio\Musik Sauna\Wiederholung]*/, $array[4]);
	}

	if($array[1]=='prefset' and $array[3]=='shuffle') {
		SetValue(15773 /*[Audio\Musik Sauna\Zufallswiedergabe]*/, $array[4]);
	}

	//Titel-Tag aktualisieren
	if($array[1]=='playlist' and $array[2]=='newsong') {
		SetValue(58939 /*[Audio\Musik Sauna\Aktueller Titel]*/ , utf8_decode(urldecode($array[3])));
		SetValue(15542 /*[Audio\Musik Sauna\MAC]*/ , $array[0]); //MAC in Variable
		SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2); // Button auf play



		// Subscripe auf entsprechende Box für Anzeige des Laufzeitbalkens und Cover oder Radioartwork laden
 		$playlist = GetValueFormatted(18540 /*[Audio\Auswertung Squeezeboxen\Wiedergabelisten\Wiedergabelisten Sauna]*/);
		echo $playlist;
		if(substr($playlist, 0, 5) == 'Radio') {
	      $cmd = "status - 1 subscribe:0";
	  		artwork_url(Sauna); // Hole Cover/Artwork URL von Radiosendern
			//IPS_LogMessage( "Radio", "Artwork");

		}
		else
		{
	      $cmd = "status - 1 subscribe:2";
	  		cover(Sauna, 48548 /*[Audio\Musik Sauna\Cover]*/); // Cover anzeigen
			//IPS_LogMessage( "Radio", "Cover");
		}
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));


	}

	// Steuerungstasten im Webfront aktualisieren
	if($array[1]=='play') {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2);

	}
	if($array[1]=='stop') {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 0);
	   $box = Sauna;
      $cmd = "status - 1 subscribe:0";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
	if($array[1]=='pause' and $array[2]==1) {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 1);
	   $box = Sauna;
      $cmd = "status - 1 subscribe:0";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
	if($array[1]=='pause' and $array[2]==0) {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2);
	   $box = Sauna;
      $cmd = "status - 1 subscribe:2";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
		if($array[1]=='button' and $array[2]=='jump_rew') {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 4);
	   Ips_Sleep(150);
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2);
	}
	if($array[1]=='button' and $array[2]=='jump_fwd') {
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 3);
	   Ips_Sleep(150);
	   SetValue(42041 /*[Audio\Musik Sauna\Steuerung]*/, 2);
	}

	if($array[1]=='status' and $array[4]=='subscribe%3A2') {
		$time_array_final = Array();
		foreach($array as $item)
		{
		    $item = utf8_decode(urldecode($item));
		    $chunks = explode(":", $item);
		    if($chunks[0] == "time")
		    {
			   SetValue(23254 /*[Audio\Musik Sauna\akt. Position]*/, date('i:s', $chunks[1]));
            SetValue(40278 /*[Audio\Musik Sauna\akt.Position Float]*/, sprintf('%01.0f', $chunks[1]));
		    }
		     if($chunks[0] == "duration")
		    {
			   SetValue(42252 /*[Audio\Musik Sauna\Länge ]*/, date('i:s', $chunks[1]));
            SetValue(29000 /*[Audio\Musik Sauna\Länge Float]*/, sprintf('%01.0f', $chunks[1]));
		    }
         if(GetValue(42252 /*[Audio\Musik Sauna\Länge ]*/) !== "00:00") {
			   slider(42809 /*[Audio\Musik Sauna\Slider Position]*/, 100/GetValue(29000 /*[Audio\Musik Sauna\Länge Float]*/)*GetValue(40278 /*[Audio\Musik Sauna\akt.Position Float]*/), GetValue(23254 /*[Audio\Musik Sauna\akt. Position]*/));
			}
		}


	}
	// Radio-Artwork aus Array holen und in HTML-Tag verpacken
	if($array[1]=='status' and $array[4] == 'tags%3AK') {
		artwork_img(48548 /*[Audio\Musik Sauna\Cover]*/, $array);
		//print_r($array);
		//IPS_LogMessage("Squeeze", $array[32]);
	}

}

//===========================================================================
// Antwort aus Playlistenausleseskript (55934 /*[Audio\Register Variable Squeeze\SQ- Auswertung\Tracks\Playlist anzeigen]*/) nach IPS schreiben
//===========================================================================



if($array[0] == 'playlists' and $array[1] == 'tracks' and $array[2] == 0) {
	SetValue(57490 /*[Audio\Register Variable Squeeze\SQ- Auswertung\Tracks\Tracks]*/, $antwort);
}


?>

Aber Du musst für jede Box so dieses Skript erstellen.

<?

include "12186.ips.php";      // Squeesfunktions-Sammlung

$box = Sauna;

if($IPS_SENDER == "WebFront")
{
  	SetValue($IPS_VARIABLE, $IPS_VALUE);
}

//if ($IPS_SENDER == "Start") {
	SqueezeInit(Schlafzimmer);
	SqueezeInit(Wohnzimmer);
	SqueezeInit(Squeeze_HP_Touch_Wohnzimmer);
	SqueezeInit(Sauna);

//	return;
//}


//SqueezeShow(Schlafzimmer, "Waschküche", "Trockner ist fertig", 5);
//SqueezeButton(SoftSqueeze, "Play");

if($IPS_VARIABLE == 36236 /*[Audio\Musik Sauna\Power]*/) {
	SqueezePower(Sauna , $IPS_VALUE);
}

if($IPS_VARIABLE == 24874 /*[Audio\Musik Sauna\Volume]*/) {
	SqueezeVolume(Sauna , $IPS_VALUE);
}

if($IPS_VARIABLE == 42041 /*[Audio\Musik Sauna\Steuerung]*/) {

	switch($IPS_VALUE) {

	   case 0:
	      SqueezeButton(Sauna , 'stop');
		break;
		case 1:
		   SqueezeButton(Sauna , 'pause');
		break;
		case 2:
		   SqueezeButton(Sauna , 'play');
		break;
		case 3:
		   SqueezeButton(Sauna , 'jump_fwd');
		break;
		case 4:
		   SqueezeButton(Sauna , 'jump_rew');
		break;
	}
}

if($IPS_VARIABLE == 57375 /*[Audio\Musik Sauna\Wiederholung]*/) {
      $cmd = " playlist repeat $IPS_VALUE";
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
}

if($IPS_VARIABLE == 15773 /*[Audio\Musik Sauna\Zufallswiedergabe]*/) {
      $cmd = " playlist shuffle $IPS_VALUE";
		CSCK_SendText(SqueezeServer,$box." ".$cmd.chr(13));
}


?>

Hi Werner,

erst einmal vielen Dank an das Super Script. Funktioniert bei mir auf Anhieb, bis auf die Cover. Leider zeigt er mir im Webfront keine Cover an, im Squeezeserver und bei dem SqueezeRadio ohne Probleme. HTML Box ist der Variable „Cover“ zugewiesen, Port und IP auch im Skript angepasst.

Das steht in der Variable „Cover“:


<table width='100%' cellspacing='0'><tr><td align=center><img src='http://192.168.1.55:9090/music/current/cover_150x150_1330859702.jpg?player=00:04:20:29:d4:34'></img></td></tr></table>

Wo ist denn wohl der Fehler begraben?

  1. Frage: In deinen Screenshots ist der Inhalt der Wiedergabeliste, farbliche zwischen den Zeilen hervorgehoben, so das man besser unterscheiden kann. Wie kriegt man das hin?

Schau mal in der inc_Squeezebox ob du cover angepasst hast.

function cover($player_id, $var_id)
{
	$time=time();
	$str = "<table width='100%' cellspacing='0'><tr><td align=center>";
	$str = $str. "<img src='http://192.168.1.6:9000/music/current/cover_150x150_$time.jpg?player=$player_id'></img>";
//	$str = $str. "<img src='http://192.168.0.5:9001/music/current/cover_150x150_$time.jpg?player=$player_id'></img>";
	$str = $str. "</td></tr></table>";
	SetValue($var_id, $str);
}

Sieht bei mir so aus, sollte korrekt sein!


function cover($player_id, $var_id)
{
	$time=time();
	$str = "<table width='100%' cellspacing='0'><tr><td align=center>";
	$str = $str. "<img src='http://192.168.1.55:9000/music/current/cover_150x150_$time.jpg?player=$player_id'></img>";
	$str = $str. "</td></tr></table>";
	SetValue($var_id, $str);
}


Wenn die IP stimmt, dann ja.:wink:

Yep IP ist vom Squeezeserver, alles andere funzt ja auch nur nicht die Coveransicht :mad:

Gib die Adresse einmal direkt im Browser ein.

http://192.168.1.55:9090/music/current/cover_150x150_1330859702.jpg?player=00:04:20:29:d4:34

Reden wir hier eigentlich von Covers aus der MP3-Sammlung oder von Artwork von Radiosendern.

Port war falsch. Der ist 9000 und nicht 9090. Jetzt ist das Cover da :slight_smile:

@Werner: Für das Inet Radio hab ich deine Änderungen schon gesichtet aber noch nicht umgesetzt. :wink:

Danke für die Hilfe.

Werner ich hab noch 2 Sachen bei denen du mir helfen kannst :wink:

sh. Screenshot

  1. Kannst du sagen, wie man die einzelnen Zeilen hervorheben kann?
  2. Kannst du die beiden Icons zur Verfügung stellen, hab sie nirgends gefunden.

Kann ich Dir morgen gerne geben.

Hi Jungs,
ich noch einmal. Ich versuche mich am Script schreiben, verzweifle aber an einer bestimmten Aktion die das Skript ausführen soll. Erst einmal, was soll das Skript machen.

Zu einer bestimmten Zeit, wenn die Squeezebox AUS ist und das irgendeine Variable z.B. Licht an, dann soll das Script folgendes machen:

  1. Squeezebox EIN
  2. Squeezebox auf z.B. 10% Lautstärke
  3. Das was als letztes Abgespielt worden ist, Abspielen. Ich will einfach nur „Play“…

Alles funktioniert bis auf Punkt Nr. 3. Ich kann zwar die Steuerungsvariable auf „2“ setzen (Play), allerdings tut sich nichts.

Wer kann mir helfen?



<?
include "17949.ips.php";      // Squeezefunktions-Sammlung
$steuerbefehl = 2;            // Steuerbefehl hier ist 2=Play
$time = date("H:i");    //aktuelle Zeit holen
$status_Squeeze_Bad_Power = GetValueBoolean(15825 /*[Squeezebox\Squeezebox Badezimmer\Power]*/);

if(($time >= "05:00") && ($time <= "22:00") && ($status_Squeeze_Bad_Power == FALSE))   //Zeitraum in dem die Freigabe gegeben wird und ist die Squeeze AUS


{

SqueezePower(Badezimmer, TRUE);           // Schalte Squeeze EIN
SqueezeVolume(Badezimmer, 10);            // Lautstärke auf Volume setzen
SetValueInteger (25113 /*[Squeezebox\Squeezebox Badezimmer\Steuerung]*/, 2);                // Squeeze "Play"
		

}

?>


Nur mal so nebenbei.

SetValueInteger (25113 /*[Squeezebox\Squeezebox Badezimmer\Steuerung]*/, 2); 

damit setzt Du deine Variable im Webfront auf Play aber nicht die Squezzebox!

Wenn Du die Squeezebox im LMS so programmierst das sie nach dem Einschalten weiterspielen soll erledgt sich das von alleine.

Falls Du dies nicht machen willst sollte ein

  SqueezePower(Badezimmer, 1);
  SqueezeButton(Badezimmer, 'play');

ausreichen, vorausgesetzt Du nutzt die selbe Squeezesammlung wie ich.

Schau mal hier.

@RWN: Danke habe ich gemerkt und mir auch gedacht, probiert habe ich es trotzdem

@wgreipl: Das hatte ich auch probiert, hat allerdings nicht geklappt, warum weiß der Geier. Das Ein/Ausschalten und die Lautstärkenänderung hat ja auch geklappt.

@bmwm3: Das Menü kannte ich so gar nicht, wußte nicht das man da noch was ausklappen kann. Bei mir war immer nur das Weckermenü da :o

Mit der Einstellung krieg ich das jetzt ohne Probleme hin, komisch finde ich nur das es nicht mit Werner’s Code klappt, so hatte ich es erst probiert und fand es so auch am logischsten :wink:

Hallo,

sehr geniales Project.
Ich hab mir gerade einen Squeezebox-Wecker gekauft und will den natürlich auch sofort einbinden, direkt auch mit dem genialen Wecker aus einem anderen Thread.

Allerdings hab ich derzeit zwei Problem:

  • ich bekomme das Squeezbox Script nicht zum laufen und ich weiss nicht warum.
    Vermuttlich liegt es an den angelegten Variablen, die nicht die richtigen Einstellungen haben, wobei ich mich an die Screenshot gehalten habe.

  • ein viel grösseres Problem, sobald der LMS auf meinem Server einige Zeit läuft, steigt der Server und damit auch IPS zeitweise aus und ich netzwerkmässig nicht mehr erreichbar. Folge, IPS kann auch nichts mehr steuern.
    Das Problem muss ich als erstes mal lösen.