Squeezebox / Squeezeserver Skript

Danke für die präventive Nachsorge. So weit war ich noch gar nicht gekommen vor lauter Umbauten im Webfront…

Hallo zusammen,

ich habe das tolle Script für die Einbindung ausprobiert, funzt auch richtig gut, leider sorgt es bei mir dafür, dass IPS sehr langsam wird.
Befehle, die im WF abgesetzt werden, werden sofort ausgeführt, die Anzeige in WF ändert sich aber erst Minuten später. Das gleiche gilt für die Meldungen in der Verwaltungskonsole
Hier habe ich das nochmal geschrieben

Hat da jemand vielleicht eine Idee?

Ich habe nun schon Tage damit verbracht und fange immer wieder bei null an, wenn ich das Backup zurückspielen muss …

Vielen Dank

Ist die Prozessorlast nur so hoch wenn ein Stream läuft oder auch schon wenn nur die Skripte installiert sind?

Falls es nur bei einem aktiven Stream, egal ob Radio oder lokales mp3, ist kann ich mir nur vorstellen das dein Rechner an seine Grenzen stößt.

Wenn eine Wiedergabeliste (mp3/Radio) gestartet wird sendet der Squeezeserver alle 2 Sekunden seinen Status um die Position des aktuellen Streams zu ermitteln.

Faktum kann ich Dir dann nur anbieten alle Befehle mit

$cmd = "status - 1 subscribe:2";

in

$cmd = "status - 1 subscribe:0";

umzubennen, es wird dann aber die Positions-Variable nich mehr aktualisiert.

Vielleicht schafft es auch schon Abhilfe wenn Du die 2 auf 5 oder 10 erhöhst, das ist der Zeitraum wann der Squeezeserver seinen Status sendet.

Hallo zusammen!

Habe mir gerade die Scripte installiert, funktioniert alles wunderbar :slight_smile:

nur ein paar kleine Fragen bleiben über g

1.) oben, bei euren Wiedergabelisten habt ihr ja alle Listen gleichmäßig verteilt, bei mir sind die „Buttons“ unterschiedlich lang, je nach Name.
Wie habt ihr das gelöst?

2.) unten, die Wiedergabelisten, im ersten Beitrag ist die Tabelle ordentlich formatiert, habe ich hier was übersehen oder muss ich die CSS dafür selber wo einbauen? Habe hier keinerlei Rahmen oder Hintergründe.

3.) Die Cover-Anzeige: ich sehe hier keine Bilder, muss aber gleich dazusagen, dass ich nur Radio-Sender habe, hat man dann dabei keine, nett wäre hier, das Cover des Senders zu sehen oder aber die Variable auszublenden?

4.) Welche Assoziationen brauche ich bei Wiederholung und Zufallswiedergabe?

Habe zu meinen Fragen in dem Beitrag hier nichts gefunden, falls es doch wo stehen sollte, nicht böse sein :wink:

Muss sagen, super Arbeit, Einrichten ging relativ einfach! :slight_smile:

Gruß,
Christian.

Hallo Werner!

Zur Sache mit Status alle 2 Sekunden vom Squeezeserver senden:

Habe dies bei mir auch jetzt so gemacht, und mal auf 10 Sekunden gestellt.
Mir ist dabei aufgefallen, das die Position gar nicht mehr aktualisiert wird.

Habe gesucht und eine Stelle in deinem Auswertescript gefunden:

	if($array[1]=='status' and $array[4]=='subscribe%3A2') {
		foreach($array as $item)
		{
			

hier muss man bei der Abfrage auch die Sekunden ändern:
Also von:

$array[4]=='subscribe%3A2'

auf

$array[4]=='subscribe%3A10'

dann klappts auch mit der Anzeige.

Gruß,
Christian.

Fein das alles soweit läuft.

zu 1. Seit IPS 2.3 ist die so. Hier wurde die Anzeige der Assoziationen geändert.

zu 2. könnte auch sein das diese mit dem geänderten CSS-Design von IPS 2.4 zu tun hat. Zeig uns mal einen Screenshot.

zu 3. Die sind leider mit dem Squeezeserver > 7.5 verloren gegangen. Ich habe noch keinen Weg gefunden an die URL der Radiologo ranzukommen.

zu 4. siehe Screenshot.

Ass.png

Sorry, hatte ich vergessen zu erwähnen. Habe in letzter Zeit nur kleine Anpassungen am Skript gemacht und bin selber nicht mehr so fit in meinem eigenen Skript :smiley:

Achso, naja, so wichtig ists jetzt auch nicht g

hänge mal meinen Screenshot an…

das kenn ich von wo, scheint wohl fast allen so zu gehen :D;)

Du mußt der Variable „Wiedergabeliste“ noch das Profil „~HTMLBox“ geben.

AH!
Glatt übersehen g
Kaum macht man´s richtig…
super, danke :slight_smile:

Hallo Werner,

ich habe es nun komplett ohne die Positionsangaben laufen. Nun scheint es so zu sein, dass IPS kontinuierlich läuft. Allerdings behaupte ich, dass es nicht an der Leistungsfähikeit des Rechners liegen sollte. iPS ist konstant mit 10% CPU-Last beschäftigt. Ohne die Abfrage der Position bleibt der Arbeitsspeicher-Bereich bei rund 150MB, mit Abfrage der Position geht es innerhalb von 2-3 Stunden auf mindestens 500 MB und ich kann den Dienst auch nicht mehr über die Tray beenden.

Seltsamer Weise war mir dies schon mehrfach bei diversen Anpassungsversuchen passiert. Ich konnte es allerdings nie eingrenzen.
Der Rechner ist eine I7-3,07GHz mit 8GB Ram und W7-64bit. Außer IPS und dem Squeeze-Server läuft auch nichts auf dem Rechner. Ihm sollte also ziemlich langweilig sein…

Das sollte für IPS und den Rechner wirklich kein Problem sein.

So ein Flakschiff habe ja nicht einmal ich :smiley:

Habe das Verhalten aber auch noch nicht in solch einem Maße nachvollziehen können, auch dann nicht wenn ich 2 Squeezeboxen gleichzeitig mit MP3-Streams befülle, dann verdoppelt sich nämlich der Traffic auf der Registervariable.

Der große Rechner kam bei mir zum Einsatz, als ich eine zweite S7-Instanz eingefügt hatte und das gleiche Problem dort mit IPS-Verzögerungen und Anstieg des Arbeitsspeichers hatte. Der Umzug hatte aber nicht zum Erfolg geführt. Ich habe dann 3 oder 4 mal die S7-Instanz rausgeworfen und wieder neu eingebunden. Danach funktionierte es tadellos, dies ist ca. 3 Monate her…

Es ist nur sehr seltsam, dass neue Teile im meinem Test-System laufen, dann übernommen werden und diese dann mal laufen und mal nicht :confused:

Da ab dem Squeezeserver 7.5 bzw. den Logitech Mediaserver 7.7 (LMS) keine Radiologos vom Server gemanaged werden hier die Anpassungen um diese wieder in der Covervariable sichtbar zu machen.

Damit dies überhaupt funktioniert müssen die Wiedergabelisten für Radios im LMS mit Radio beginnen, schließlich brauche ich ja ein Unterscheidungsmerkmal.

Als erstes die inc_squeezebox um folgende Funktionen ergänzen.

// URL für Artwork / Cover des Radiosenders anfordern
function artwork_url($box)
{
 $cmd = "status - 1 tags:K";
 return CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
}
 
// Aus URL des Artworks / Covers Image in HTMLBox für entsprechende Variable erzeugen
function artwork_img($var_id, $array)
{
 foreach($array as $key => $value) {
    if(@eregi('artwork', $value)) {
       $index = $key;
  }
 }
 $url = $array[$index];
 $img = utf8_decode(urldecode($url));
 $img = substr($img, 12);
 $str = "<table width='100%' cellspacing='0'><tr><td align=center>";
 $str = $str. "<img src='$img'></img>";
 $str = $str. "</td></tr></table>";
 SetValue($var_id, $str);
}

Die Erste weist den Server an den Status inkl. des Tags für das Artwork zu holen. Die Zweite holt aus dem Array den Pfad zum Artwork und packt dieses in einen HTML-String um diesen wieder in der Covervariable angezeigt zu bekommen.

Nun noch das Auswerteskript anpassen. Die Anpassung müssen bei jeder angelegten Squeezebox im Auswerteskript gemacht werden.

Unterhalb des Kommentars //Titel-Tag aktualisieren …// findet ihr im Moment folgendes.

    cover(Wohnzimmer, 50072 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Cover]*/); // Cover anzeigen
  // Subscripe auf entsprechende Box für Anzeige des Laufzeitbalkens
  $box = Wohnzimmer;
        $cmd = "status - 1 subscribe:2";
  CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));

dieses mit ersetzen

  // Subscribe auf entsprechende Box für Anzeige des Laufzeitbalkens
   $box = Wohnzimmer;
   $playlist = GetValueFormatted(57131 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Wiedergabelisten\Wiedergabelisten Wohnzimmer]*/);
  if(substr($playlist, 0, 5) == 'Radio') {
       $cmd = "status - 1 subscribe:0";
     artwork_url(Wohnzimmer); // Hole Cover/Artwork
  }
  else
  {
       $cmd = "status - 1 subscribe:2";
     cover(Wohnzimmer, 45202 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Cover]*/); // Cover anzeigen
  }
  CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));

als nächstes vor dem Ende einer Squeezebox im Auswerteskript, also dort wie die Klammer } zu macht noch folgenden Code einfügen.

 if($array[1]=='status' and $array[4] == 'tags%3AK') {
  artwork_img(45202 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Küche\Cover]*/, $array);
 }

Nach dem Anpassen der entsprechenden ID´s für die Cover-Variable und der Playlist-Variable sollte eigentlich das Radio-Cover wieder funktionieren.

Wie immer sind meine Skripte Quick´n´Dirty und nicht so schön zum installieren aber mit ein wenig Geschick bekommt es jeder der mein Hauptskript am laufen hat schon hin :smiley:

Geht. Sendet BAYERN3 bei Dir ein Logo?

ja. Bayern3 hat ein Logo.

Haben denn andere Sender ein Logo bei Dir?

ja, nur BAYERN3 nicht. Das ist aber der einzige Sender, den ich URL copy/paste in die Playlist eingebaut habe.

Such doch mal den den der Server direkt anbietet.

Mit direkten Aufrufen von Sender-URLs habe ich noch nie probiert.

Ja, geht wohl nur mit den im Server angelegten Streams.

Inspiriert durch wupperi & Ferengi-Master habe ich mal das Design meiner Squeezesteuerung an die Möglichkeiten von IPS ergänzt. Hier nochmals meine Dank an beide.

Erstellt wurde die Ansicht mit

[ul]
[li]TabPane[/li][li]SplitPanes[/li][li]und Kategorien[/li][/ul]Anbei Screenshots der benötigten Dummy-Kategorien mit den entsprechenden Links auf die Variablen sowie ein weiterer Screenshot des WFC, dieser sollte eigentlich auf Grund des Screenshots des Webfronts selbsterklärend sein, sollten dennoch Fragen auftauchen einfach in diesem Thread fragen.

Eine Frage sei gleich geklärt: Es wird kein Installationsskript geben das seitens des eigentlich Skriptes keine feste Struktur vorgegeben ist und dementsprechend auch keine weiterführende automatische Installtion möglich ist. Sorry.

Squeeze_WFC_Neu.png