Squeezebox / Squeezeserver Skript

Hallo,

zum Problem 1

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.

bräuchte ich mir Angaben. Welche Fehler werden wann und durch welches Skript generiert.

Zu Problem 2.

Es gab einmal einen User der hatte ähnliche Probleme. Tritt das Problem nur in Verbindung mit IPS & LMS inkl. Skrpte auf oder auch wenn der LMS alleine läuft. Durch die vielen Verknüpfungen der Variablen mit den Actionskripten und den Mengen an Daten was vom ClientSocket vom LMS kommen kann es schon mal passieren das Du eine Endlosschleife in IPS generiert hast und deshalb dein System zum Stillstand kommt.

Als erstes würde ich einmal alle Squeezeskript inkl. Clientsocket und RegisterVariable löschen und testen ob der LMS alleine mit IPS läuft um einen Fehler bei der Installation der Skripte auszuschliessen.

Wenn du dem LMS einen Pfad mit „kleiner“ Musiksammlung gegeben hast, ist er auch eine Weile mit der Indizierung beschäftigt.

Hallo,

Ich muss erst mal Problem lösen, damit ich Problem 1 angehen kann, derzeit geht nichts mit dem Scripten.

Zu Problem 2, habe erst mal den ClientSocket und Cutter gelöscht und lasse LMS erst mal so laufen.
Wobei soviel Script in Richtung LMS gibt es bei mir noch garnicht.

Ja, die Sammlung ist schon recht gross bei mir. Die Indizierung sollter auch schon längst durch sein, LMS läuft ja schon einige Tage auf dem Server.

EDIT: mal ein Update

Ich hab den LMS upgedatet auf die neuste Version 7.8.0, gestern wohl rausgekommen. Bisher gab es noch keine Aussetzer beim Parallelbetrieb LMS / IPS. Werden heute abend dann mal den ClientSocket und Cutter wieder einrichten. Mal schauen, wie es dann morgen aussieht.

Hallo zusammen,

ich hab dein SqueezeBox Skript Teil 1 erfolgreich am Laufen und wollte nun den Teil 2 mit den Wiedergabelisten mit einbauen. Leider ist es IPS vollkommen egal wenn ich neue Playlisten anlege er zeigt Sie mir einfach nie an, ich hab alle evtl. wichtigen dinge mal angehängt könnte mal jemand der davon mehr Ahnung hat als ich mal einen Blick drauf werfen ?

Ich finde den Fehler einfach nicht.

Gruß Philip

EDIT ! Hat sich erledigt hatte ne falsche ID eingetragen es funktioniert klasse !! Genials Skript

Auswerteskript.txt (9.17 KB)

Hallo,

ich werde mal deine Daten als Muster nutzen, um bei mir den Fehler zu finden.

Bei mir kommt immer folgende Fehlermeldung, irgentwo klemmt es da aber ich weiss nicht wo.

Hallo,

mal ein kleines Update:

Ich hab das Thema Squeezebox über IPS erst mal für unbestimmte Zeit auf Eis gelegt, aus meheren Gründen:

  • der Logitech Media Server macht immer noch Problem, wenn er mit dem Squeezebox-Radio verbunden ist, geht netzwerkmässig nichts mehr, auch IPS nicht mehr, so das ich den erst mal komplett deinstalliert habe

  • mein derzeitges IPS-Server wird in einiger Zeit eh erst mal ausgetauscht gehen eine grössere Maschine, die dann gleichzeitige auch als NAS usw. arbeiten soll.
    Obs eine Linux-Kiste mit Virtualisierung für IPS oder Windows-Homeserver wird ist noch offen

Hi,

bei mir läuft der LMS mit 3 x SB-Radio, Controller und Receiver.
Ich laß mich jeden morgen von meinem IPSWecker wecken.
Welche CPU und wieviel Songs hast Du eingebunden?

Konnte ein hänger der Radio beobachten, wo ich >400 GB Sound-Files und eine Atom CPU hatte.

Seit ner stärkeren CPU ist alles ok.

Gruß
Andre

Gesendet von meinem GT-I9100 mit Tapatalk 2

Kann gelöscht werden . Nach dem ich den Eintrag gemacht habe . Hat es funktioniert! Das Forum ist der Wahnsinn. :loveips:

Hallo

Erst mal die Gegebenheiten.

Windows XP
LMS 7.7.2/r33893 auf IPS Server
1X Squeezebox Radio
Anleitung im Post 1 befolgt . Sogar Squeezebox im LMS Wohnzimmer genannt.

Anleitung schon drei mal durchgeführt.

Jetzt zu meinem Problem
Ich kann nichts auslesen . Aktueller Track bzw Radiosender Cover und so weiter. Aber ich kann die Box Ein/ Ausschalten Volume Rauf/Runter. Also kann es ja nicht komplett Falsch sein . :slight_smile:

Ich kann nichts im Debug von der Register Variable sehen.
Dann kann es doch nur irgendwas mit dem „listen1“ zutun haben? Aber ich weiß nicht wo der Fehler liegt das die Funktion SqueezeInit nicht ausgeführt wird.

Was kann ich für Bilder / Logs Anhängen das ihr mir Weiterhelfen könnt?
Oder weißt ihr so wo der Hund begraben liegt?

Wäre über jede Hilfe Dankbar.

Kann gelöscht werden . Nach dem ich den Eintrag gemacht habe . Hat es funktioniert! Das Forum ist der Wahnsinn.:loveips:

Sag doch lieber welchen Eintrag du wo getätigt hast. Hilft evtl. anderen in Zukunft noch weiter!

Das ist es ja garnichts. Aufeinmal ging es! Ohne das ich erneuert was geändert habe!

Hallo,

Das wird sicherlich auch das Problem sein, 400GB sind es nicht aber sicherlich rund 180 bis 200GB und der Rechner hat auch nen ATOM drin.
Sobald das Radio mit dem LMS verbunden ist, blockiert das Teil alles, komme nicht mal mehr per Remotedesktop drauf. Ziehe ich das Netzwerkkabel kurz ab, ist alles wieder gut bis zur nächsten Verbindung.

Da wie geschrieben den aber eh austauschen will, werde ich an der Fehlersuche erst mal keine Zeit verschwenden.

Derzeit stelle ich mri die neue Hardware zusammen, da ich mein NAS erweitern will/muss und der neue Server dann auch direkt die Aufgabe übernehmen soll, denke ich, das es sicherlich Richtung Core i5 gehen wird um Leistungsreservern für die eine oder andere virtuelle Maschine habe.

Zudem ist die SSD in meinem jetzigen IPS-Server grottenlahm, die werde ich morgen erst mal gehen eine normale Platte austauschen.
Das merkt man mittlerweile leider sogar schon bei Highgraphs in IPS, bekomme des öfteren Timeouts vom Webfrontend.

Hallo.

Ich vermute das Problem gefunden zu haben warum manche Anwender (auch ich) bei aktivem Squeeze-Server-Skript mit einen sich stark verlangsamenden IPS zu kämpfen hatten.

Bei mir wirkte sich das so aus, dass das System innerhalb von 3-4 Minuten eine Minute Arbeitsrückstand in seiner Thread-Warteschlange angesammelt hatte und der Speicherbedarf massiv anstieg.

Das ging dann so lange bis die Kiste mir um die Ohren geflogen ist (=Neustart) oder das Skript deaktiviert wurde. In letzterem Fall holte IPS den Arbeitsrückstand langsam wieder auf bis es wieder in der Echtzeit angekommen war.

Stein des Anstosses war dieser Teil des Auswertungsskriptes:


	if($array[1]=='status' and $array[4]=='subscribe%3A2') {
		foreach($array as $item)
		{
			$item = utf8_decode(urldecode($item));
			$chunks = explode(":", $item);
			if($chunks[0] == "time")
			{
				SetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, date('i:s', $chunks[1]));
				SetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, sprintf('%01.0f', $chunks[1]));
			}
			if($chunks[0] == "duration")
			{
				SetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, date('i:s', $chunks[1]));
				SetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, sprintf('%01.0f', $chunks[1]));
			}
			if(GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/) !== "00:00") {
			    slider(34996 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/));
				slider2(36846 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position Neu]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/));
			}
		}

	}

Sobald ich die beiden Zeilen mit den Slidern auskommentiert hatte lief das Skript ganz brav vor sich hin. Mir ist dann aufgefallen, dass pro Aktualisierung durch den LMS (da Sie innerhalb der Schleife stehen) jeder der beiden Slider 33 mal aktualisiert wird. Und damit wurden Sie auch entsprechend häufig im Webfront aktualisiert.

Ich habe diesen Teil daher aus der Schleife rausgenommen so daß die Slider nur noch einmal pro Aktualisierungszyklus neu geschrieben werden:


		foreach($array as $item)
		{
			$item = utf8_decode(urldecode($item));
			$chunks = explode(":", $item);
			if($chunks[0] == "time")
			{
				SetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, date('i:s', $chunks[1]));
				SetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, sprintf('%01.0f', $chunks[1]));
			}
			if($chunks[0] == "duration")
			{
				SetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, date('i:s', $chunks[1]));
				SetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, sprintf('%01.0f', $chunks[1]));
			}
		}
		if(GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/) !== "00:00")
		{
			slider(34996 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/));
			slider2(36846 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position Neu]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/));
		}

Seit dem tuckert IPS bei mir auch mit aktiviertem Squeeze-Skript friedlich vor sich hin und tut was es soll.

Grüsse.

Hi Stefan.

Das muss ich mit morgen einmal näher betrachten.

Bei einigen Usern wird der Socket extrem mit Statusdaten überflutet obwohl eigentlich die Meldung alle 2 Sekunden kommen sollte. Hier sollte IPS eigentlich damit zurechtkommen.

Aber Danke für den Hinweis.

Sent from my iPhone using Tapatalk

Bei einigen Usern wird der Socket extrem mit Statusdaten überflutet obwohl eigentlich die Meldung alle 2 Sekunden kommen sollte.

Hallo Werner.

Da kann ich eventuell auch helfen. Bei Deiner Ergänzung der Radio Logos wird egal ob notwendig oder nicht ein


CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));

abgesetzt um den Subscribe wieder zu aktivieren. Der LMS antwortet darauf mit einer Statusmeldung - die dann wieder das Skript triggert welches wieder das selbe Kommando absetzt. Und so fort…

Ich habe das so abgeändert dass der Befehl nur abgesetzt wird wenn es notwendig ist:


$box = Wohnzimmer;
$playlist = GetValueFormatted(53642 /*[Skripte allgemein\Squeeze\Auswertung Squeezeboxen\Wiedergabelisten\Wiedergabelisten Wohnzimmer]*/);
if(substr($playlist, 0, 5) == 'Radio')
{
	$cmd = "status - 1 subscribe:0";
	CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	artwork_url(Wohnzimmer); // Hole Cover/Artwork
}
else
{
	$cmd = "status - 1 subscribe:".$Interval;
	cover(Wohnzimmer, 41632 /*[Skripte allgemein\Squeeze\Auswertung Squeezeboxen\Wohnzimmer\Cover]*/); // Cover anzeigen
	if ($array[1]=='status' and $array[4] <> 'subscribe%3A'.$Interval)
	{
		CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
	}
}

Und als letztes flackert bei mir ganz gerne mal das Cover weil auch diese Variable alle zwei Sekunden neu gesetzt wird. Dazu bin ich aber heute zu müde - war gestern ein harter Vatertag.

Grüsse.

Moin Stefan,

sollte so eigentlich nicht sein da

 //Titel-Tag aktualisieren
 if($array[1]=='playlist' and $array[2]=='newsong') {
  SetValue(12555 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Büro\Aktueller Titel]*/ , utf8_decode(urldecode($array[3])));
  SetValue(37893 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Büro\MAC]*/ , $array[0]); //MAC in Variable
    SetValue(47035 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Büro\Steuerung]*/, 2); // Button auf play
  // Subscripe auf entsprechende Box für Anzeige des Laufzeitbalkens und Cover oder Radioartwork laden
   $playlist = GetValueFormatted(41742 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Wiedergabelisten\Wiedergabelisten Wohnzimmer]*/);
  if(substr($playlist, 0, 5) == 'Radio') {
       $cmd = "status - 1 subscribe:0";
     artwork_url(Wohnzimmer); // Hole Cover/Artwork URL von Radiosendern
  }
  else
  {
       $cmd = "status - 1 subscribe:2";
     cover(Wohnzimmer, 50072 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Büro\Cover]*/); // Cover anzeigen
  }
  CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
 }

[ol]
[li]das Radiologo nur geholt werden wenn ein „playlist newsong“ kommt. Das kann natürlich bei einigen Radionsender wie bei mir z.B. Bayern 3 schon mal öfters geschehen, erfahrungsgemäß ca. 30 Sekunden. Hier wird im Skript auch der „subscripe“ wieder auf 0 gesetzt da ein Slider bei Radiosendern sinnlos ist.[/li][li]Wird die Coveranfrage bei Playlisten ohne „Radio“ im Wiedergabelistennamen auch nur bei einem „playlist newsong“ gestartet, also auch nur wenn ein neuer Titel beginnt.[/li][/ol]Wichtig beim Radio ist halt das der Playlistenname mit „Radio“ beginnt, danke aber daran hast Du gedacht. :slight_smile:

Ich muss aber auch sagen ich bin nicht wirklich mehr im Thema Squeezeboxskript drin. Wollte das Skript schon lange komplett neu machen, aber wie das so ist mit der Zeit.

Hauptsache Du hast für dich eine Lösung gefunden.

Ja, funktioniert zufriedenstellend. Danke für die Mühe.

Hi,

ich bekomme das hier nicht zum laufen.:frowning:

Vielleicht kann mir hier einer auf die Sprünge helfen. :smiley:

Ich habe das selbe Problem wie Jimmirackete damals.
Siehe hier: http://www.ip-symcon.de/forum/f53/squeezebox-squeezeserver-skript-12934/index9.html#post150168

Selbstverständlich habe ich diesen Fehler nicht wie er damals,
allerdings habe ich in etwa die gleiche Meldung.

Auszug vom Script:

<?

include "inc_Squeezebox.php"; // Squeeze-Funktionssammlung laden

$box = Wohnzimmer;

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


if($IPS_VARIABLE == 46386 /*[Sonstiges\Squeezebox\Squeezebox Radio 1\Power]*/ ) {
	SqueezePower(Wohnzimmer, $IPS_VALUE);
}

if($IPS_VARIABLE == 39522 /*[Sonstiges\Squeezebox\Squeezebox Radio 1\Volume]*/ ) {
	SqueezeVolume(Wohnzimmer, $IPS_VALUE);
}

if($IPS_VARIABLE == 51831 /*[Sonstiges\Squeezebox\Squeezebox Radio 1\Steuerung]*/ ) {

	switch($IPS_VALUE) {

Danke mal im voraus.:wink:

Lass uns die Glaskugel rausholen, oder poste die genaue Fehlermeldung!
Es wäre schon wichtig… um nicht „in etwa“ etwas beantworten zu können.

Hi,

nein, nein, die Glaskugel sollte nicht nötig sein.:stuck_out_tongue:
Sorry, hätte ich gleich noch anfügen müßen… :o

Ich habe jetzt das Include-Script direkt in das Auswertescript eingefügt.
Wie nicht anders zu erwarten war, funktioniert es so.

Warum der Befehl include nicht geht, weiß ich jetzt natürlich auch nicht.
Ich gehe dem morgen weiter nach und werde dann auch die genaue Meldung posten.

Aber auf jeden Fall mal ein Danke für die Antwort.

Hallo,

ich nochmal.:stuck_out_tongue:

Hat jetzt leider etwas länger wie angekündigt gedauert,
im Anhang ist die Fehlermeldung.