[Archiv][Modul] Squeezebox (Testversion)

Hier mal der ‚erste‘ Wurf für eine Library für die Squeezebox(en).

Über das Modul-Control einfach bei GitHub zu laden:

git://github.com/Nall-chan/IPSSqueezeBox.git

Eine Instanz ‚Squeezebox Device‘ anlegen, es wird automatich ein Splitter vom Typ ‚Logitech Media Server‘ sowie ein ClientSocket erzeugt.

In den Splitter ist die IP des LMS einzutragen. Bei den Ports weiß ich gerade die default Werte von der Installation des LMS nicht. Aber ich glaube die passen schon :slight_smile:
Hier zuerst übernehmen anklicken.

In dem Squeezebox Device ist die MAC-Adresse einzutragen (mit - oder : oder ohne Trenner).
Dann übernehmen anklicken.

Es gibt noch diverse ‚Problemchen‘, welche auf noch fehlende Funktionen oder Bug durch IPS beruhen.

So verlieren die Instanzen die Konfiguration bei einem Update.
Und bei einen IPS-Neustart wird sich der Splitter leider nicht automatisch mit dem Server verbinden.
Aber das wird schon noch alles.

Doku inkl. Funktionsreferenz ist bei GitHub verfügbar:
Nall-chan/IPSSqueezeBox · GitHub

Screenshot von der Konfig:

Screenshot von der Instanz:
Objektbaum.png

Screenshot von der Instanz im WebFront:

Screenshot von der Akku-Überwachung:

Screenshot wie man es sich im WebFront selbst verlinken kann.

Viel Spaß beim testen,

Michael

Bin seit Tagen schon am doktern mit meinen Squeeze Boxen/ PicorePlayer !
Um diese Sache auf dem Pi umsetzen. Squeezebox / Squeezeserver Skript
Aber noch hat mit super vielen Problemen. Da werde ich morgen erst mal deins aus testen . Bin schon riesig gespannt. Wirst du auch versuchen SprachAusgaben über die SqueezeBoxen zu implementieren?

Erstmal kommen noch die Playlisten.
Den ‚Rest‘ muss ich mir dann ansehen.
Ich könnte zumindest Funktionen bereitstellen über welche du die laufende Playlist sichern und wieder herstellen kannst.

Ich kann nicht über ein Modul z.B. 30-60 Sekunden eine Sprachausgabe laufen lasssen. Dann hängt die Kommunikation zum Server. Aber die Möglichkeiten dass du soetwas in einem eigenen Script steuern kannst, die kann ich dir wohl geben.

Michael
PS: Die UTF8 Titel kann mein Windows-IPS (nie weiter probiert) und meine Squeezebox nicht anzeigen :smiley:

Ich werde das Auf jeden Fall weiter verfolgen!

Das würde ja eigentlich schon voll reichen denke ich! So wird das jetzt auch in dem vorhandenen Skript gemacht!

Aber ich vertraue da voll deiner Programmierkunst !:slight_smile:

Das ‚Ganze‘ ist erst noch ein Test. Ich weiß nicht wie sich IPS nachher unter Last verhält.

Ich glaube es ist das erste Modul welches jetzt aktiv Daten über eine I/O-Instanz austauscht.
Ob, und wie sich das nun in der Praxis beweist…abwarten. Aber das sehe ich halt nur ‚draußen‘.

Noch hat IPS wohl ein kleines Performance-Problem. Ich kann locker, nur durch drehen am Lautstärkeregler der SqueezeBox, mal eben die CPU Last von IPS auf 4-10% hochtreiben :smiley:
Und, nein das ist kein RPi auf dem ich teste :wink:

Michael

Das ist ja super, dass du da ein Modul für baust!!

Muss ich gleich mal testen…vorbei die Zeit der manuellen Skript und Variablen erstellung :smiley:

Bist der Beste…

Ich habe gestern noch viel umgebaut und geändert. Wenn alles klappt gibt es heute Abend/Nacht noch ein Update.
Und dann auch mal eine Befehlsreferenz.
Wenn euch dann noch etwas fehlt, einfach melden. Ich schaue dann was sich machen lässt.
Michael

Ich bin schon gespannt! Hast du die Performance auch auf einem RPI getestet?

Habe mal eine neue Version auf Git gepusht.
Allerdings habe ich so viel umgebaut, dass Fehler nicht ausgeschlossen sind.

Gerade wenn Ihr Radiostreams nutzt, so muss ich dort noch einiges nacharbeiten.

Details zu den Befehlen kommt noch… Sofa ruft :wink:

Für den Splitter gibt es:
LMS_Rescan
LMS_GetPlayerInfo
LMS_GetLibaryInfo
LMS_GetVersion

Die letzeren drei liefern aktuell nur Daten im Log, da IPS leider immer nur NULL zurück gibt. (siehe Bug-Liste der PHP-Module)
Die restlichen LMS_ sind nicht benutzbar.

Für die Geräte gibt es alles was mit LSQ_* anfängt
Zum Beispiel:
LSQ_Pause
LSQ_Play
LSQ_SetVolume / GetVolume
LSQ_SetMute / GetMute
LSQ_SavePlaylist
LSQ_NextTrack
LSQ_PlayTrack
LSQ_Power
LSQ_SelectPreset
LSQ_SetPosition
u.s.w.

Da ‚sollten‘ eigentlich alle gehen.
Ansonsten einfach melden :smiley:

Welche Last die Module nun auf den RPi erzeugen weiß ich nicht. Mein RPi und auch meine Banane liegen in der Kiste.
Irgendwie fehlt da was… ach ja die Zeit :eek:

Michael

Hallo,
vielen Dank für dieses Modul!

Aber wie kann ich dieses jetzt zur IPSLibrary hinzufügen?

Was hat das mit der IPSLibrary zu tun?
Die nutze ich nämlich nicht.
Michael

Ok, aber wie funktioniert dann die Installation dieses Moduls?
Per Github auschecken und in Skripts kopieren?

Einfach über das Modul Control die URL eintragen.
Natürlich nur in IPS4 verfügbar.
Michael

Ok, danke! Das war das Problem.

Hallo Nall chan! Top Leistung!

Es funktioniert sogar recht flüssig auf dem RPi ! Bisschen Verzögerung, aber verkraftbar!

Allerdings scheinen die LSQ_Get… nicht zu funktionieren!


<?

$time = LSQ_GetVolume(28694 /*[Wohnzimmer]*/);

echo $time;

?>


Es wird mir kein Ergebnis ausgeben ! Die Set Befehle funktionieren aber Einwandfrei!!

Und irgendwie fehlt mir LSQ_GetPosition

Alle PHP-Funktionen liefern nix zurück.
Siehe Bugliste:
IP-Symcon Community Forum
Die meisten Get sind auch eher unnötig, die Statusvariablen spiegeln ja die Werte wieder.
Michael

Das mit den Rückgabewerten ist im nächsten Update korrigiert :slight_smile:

paresy

Danke für die Info!!

Allerdings muss ich sagen das die Performance auf RPi doch nicht ausreicht!

Noch kurzer Zeit geht die CPU Auslastung auf 100%! Sobald ich die Instanz beende normalsiert sich das wieder!

Wahrscheinlich doch bisschen zuviel was der LMS da sendet!

Wahrscheinlich müsste mal wie in diesem Post an dem Intervall geschraubt werden . https://www.symcon.de/forum/threads/12934-Squeezebox-Squeezeserver-Skript?p=142243#post142243

Der Intervall ist in der Sqeezebox-Instanz einstellbar.
Der wird auch nur im Modus ‚Play‘ genutzt.
Sobald die Box nicht mehr auf Play steht, wird er auf 0 = aus gesetzt.

Da ich unter einer Ubuntu-VM entwickel und teste, fällt das mir auch kaum auf. Der Host hat genug Dampf.
Allerdings ist Windows IPS hier allgemein sparsamer mit den Ressourcen. Ich hoffe da noch auf Steigerung der Leistung durch die Entwickler :slight_smile:

Michael

Kann ich bei mir nicht bestätigen, allerdings nutze ich den RaspberryPi 2 für meine Tests, das juckt die CPU auch nach einer Stunde betrieb kein bischen.
Interresant wäre, was passiert wenn man mehrere Player nutzt, das habe ich noch nicht getestet.
Mit dem Intervall muss ich mir auch mal anschauen, alle 2 sek finde ich auch schon viel…mal testen.

Ansonsten ist mir noch aufgefallen:

  • ich bekomme Fehlermeldungen wenn die repeat oder shuffle Funktion aktiviere, habt ihr das auch?
  • Bass & Treble ohne Funktion, wobei das glaub nur von den Ur-Squeezeboxen unterstützt wird!?
  • Keine Coveranzeige der Radiostreams
  • Signalanzeige wird bei mir nicht ausgegeben

Aber ansonsten echt TipTop, das wird ein richtig gutes Modul!! :loveips: