Squeezebox / Squeezeserver Skript

Hi Werner, danke für die Info. Ich habe es auch nur mit Radiosendern in der Playlist probiert. Ich probiere es nachher mal mit Alben.

gruss,

wupperi

Hi Werner, danke für die Info. Ich habe es auch nur mit Radiosendern in der Playlist probiert. Ich probiere es nachher mal mit Alben.

Ja, das wars, da hatte ich das Konzept wohl noch nicht verstanden.

Noch eine kleine OT Frage: Ich habe auf meinem Server einen Ordner …/playlists in dem meine *.m3u playlists abgelegt sind. Dieser Ordner ist im Slim Server auch als Playlist Ordner konfiguriert. Es scheint so, dass ich diese Playlists (eine je Album) dann doch einzeln als Player Playlist speichern muss (Auswahl, plus Symbol - speichern - Name, usw…).

Oder kennst Du einen besseren Weg?

Gruss,

wupperi

Guten Morgen,

Ja, das wars, da hatte ich das Konzept wohl noch nicht verstanden.

Welches Konzept? :smiley:

Bezüglich deiner abgelegten m3u-Playlisten.
Ich habe damit noch nicht gearbeitet aber ich denk wenn die in die Wiedergabelisten für IPS übernommen würden dann täte das mit Sicherheit das Webfront sprengen. Ich lasse mir in IPS nur Radiosender und ausgewählte Tracks anzeigen, alles andere wird mit iPeng und SqueezePad gesteuert falls Bedarf besteht.

So hab heute auch meinen ersten Squeezebox Radio bekommen, habe gleich mal über Teamviewer zuhause die scripte und variablen angelegt und alles installiert (Ist ja nicht mal sowenig alles umzubauen :wink: )

Bin mal gespannt dann auf Heute abend, ob alles glatt geht dann :slight_smile:

Aber auf jeden Fall mal gleich vorweg danke für das Script und die ganzen Beschreibungen - ohne die hätte es wahrscheinlich noch keine Squeezebox gegeben :wink:

Hi Werner,

das Script läuft soweit (seit dem WE) erstmal sehr gut. Allerdings hab ich noch ein Verständnisproblem:

Deine Anleitung geht ja zunächst von einer in Betrieb befindlichen Box aus. Wie aber funktioniert das, wenn 2 oder mehr Boxen eingebunden werden sollen?

-> ich hab das Auswertescript kopiert und -angepasst auf die 2. Box (Variablen, Kategorie, Boxname etc)- nochmal unten angehängt (an das bestehende Auswertescript), das scheint aber nicht die Idee gewesen zu sein, oder?
Es müsste doch nur das Auswertescript angepasst werden, alle anderen Scripts bleiben bestehen (ausgenommen der Anpassung der Boxnamen und Mac-Adressen), oder?

Ich glaube pro Box alles ausser RegVar und Cutter neu anlehgen.

  • und Wiedergabelisten. hab ich alles schon gemacht. Ich denke, das Auswertescript ist der Schlüssel. Denn das Sript aus Post 1 ist Box-spezifisch (Auszug):

<?
include "59910.ips.php";  // Squeezefunktions-Sammlung und Variablendefinitionen

$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


// =============================
// SqueezeBox Classic Wohnzimmer
// =============================

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

	// Powertaste bei Änderung aktualisieren
	if($array[1] == 'power') {
		if ($array[2] == 1) {
			SetValue(36142 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Power]*/, true);
		} else {
			SetValue(36142 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Power]*/, false);
		}
	SetValue(37893 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\MAC]*/, $array[0]); //MAC in Variable
	}

Hallo.

Eine Zwischenfrage sei erlaubt. Bin noch nicht dazu gekommen das zu installieren und wollte das die Tage nachholen. Gibt es Erfahrungswerte ob die Skripte auch mit einer Squeezebox Touch als Endgerät laufen? Sollten Sie doch eigentlich?

Grüsse.

Ja, da müssen die anderen Boxen auch rein, und dann die ID´s anpassen.

@kronos
Habe zwar kein Touch, sollte aber ohne Probleme funtionieren. Wird eh nach MAC Adresse versendet.

dann hab ich’s doch richtig verstanden: hab das Script eben nochmal gepüft: hatte einen Tippfehler in einer Variable -> deswegen auch die Fehlermeldungen. Jetzt läufts wie gewünscht

Wenn der Touch im Squeezeserver als normales Gerät zu finden und zu steuern ist kann es wie jedes andere Gerät auch mit den CLI-Befehlen gesteuert werden.

Was ich auch noch gelesen habe soll der Touch auch als Squeezeserver dienen können, habe aber wegen nicht vorhanden sein das Skript darauf nicht testen können.

Hi Werner,

ich hab nochn ne Frage zu deinem Screenshot im ersten Posting: die verschiedenen Wiedergabelisten sind dort mehrzeilig dargestellt. Wie hast du das hinbekommen (wahrscheinlich ein Variablen-Profil, aber welches?)?

Meinst Du oben die Auswahl oder unten den Inhalt der Wiedergabeliste oder besser gesagt wie sieht deine aus?

OK, versuche ich schnell selbst zu beantworten.

Die Variable für Auswahlfunktion einer Wiedergabeliste ist eine Integer-Variable mit einem eigenen Profil das ja zum befüllen der Playlists aus dem Squeezeserver benötigt wird „.SQ_Playlist“. Die sollte aber bereits da sein da es ja ansonsten nicht funktioniert. Natürlich das Aktionskript „Wiedergabeliste_starten“ mit eintragen ansonsten wird es nur als einzeilige Variable angezeigt.

Die Anzeige unten ist eine String-Varialbe mit ~HTML-Box-Profil das mit den Titeln befüllt wird.

Hi Werner,

ich meine die Wiedergabelisten-Auswahl ganz oben in deinem Screenshot. Ich habs eben nochmal bei mir geprüft (das Profil ist genau wie bei dir als SQ.Playlist eingerichtet): sowohl der Feuerfuchs als auch Opera stellen diese Auswahlbox einzeilig das, egal wie breit dass Browserfenster ist. Die mehrzeilige Darstellung gefällt mir aber besser (zumindest hier) :wink:

Zeig doch mal ein Screenshot von dir. Meinst Du das, wie im Anhang?

yeaaah, genau das meine ich. Meins sieht so aus:

Hmm sieht ja grausam aus, ich habe den Feuerfuchs 3.6.13 und das ohne Probleme.

sowohl der Feuerfuchs als auch Opera stellen diese Auswahlbox einzeilig das, egal wie breit dass Browserfenster ist. Die mehrzeilige Darstellung gefällt mir aber besser

verstehe es jetzt nicht wie hättest Du es denn gerne ?. So wie meins das ist doch einzeilig, deins ist zweizeilig.

Du hast ja auch erst 4 Wiedergabelisten im Squeezeserver angelegt. In der normalen Webfront / Kategorien-Anzeige wird die 2. Zeile erst nach der 7. Wiedergabeliste angezeigt.

Alternative Möglichkeit. Du machst Dir eine benutzerdefinierte Kategorie über den Webfront-Konfigurator dort kannst Du einstellen wieviele Spalten er für das Integer-Profil nutzen soll.

Funktioniert halt nur wenn Du es über eine extra Kategorie machst

Kategorie.png

Hallo Squeezebox-Freunde,

wer mein Skript mit der Beta 2.4 von IP-Symcon nutzt muß, damit das einlesen der Wiedergabelisten korrekt funktioniert, 2 Zeilen im Einlesemodul der Wiedergabelisten anpassen. Diese befinden sich im Auswerteskript ziemlich weit unten.

//==============================================================
// 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 beginnt, 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) );
   $playlist_id = urldecode ( substr ($array[$y-1], 5 ) );
   IPS_SetVariableProfileAssociation(".SQ_Playlist", $x, $playlist, $playlist_id, -1);
   
  }
 }
}

Bei den beiden Befehlen zu IPS_SetVariableProfileAssociation muß hinten der Parameter -1 hinzugefügt werden.

Das war es dank der geringen Kerneländerungen in IP-Symcon 2.4.