[Archiv][Modul] Squeezebox (Testversion)

Bass Treble und Pitch gehen glaube ich nur bei den alten Geräten. Sonst einfach die Variablen verstecken.
Meine können es auch nicht. Aber der Server bestätigt das setzen der Werte. Nach einen Reconnect sind sie aber wieder auf default.
Radiostreams mit Cover gehen bei mir. Allerdings habe ich die letzten Änderungen noch nicht veröffentlicht.
Ich warte auf eine Bug-Beseitigung im Client Socket und auf die Rückmeldungen der PHP-Funktionen.
Welche Fehlermeldung kommt den beim setzen von Shuffle/Repeat?
Michael

Der Fehler ist leider nur im Webfront zu sehen, nicht im Log:

Bildschirmfoto 2015-07-27 um 19.03.26.png

Mit der Signalanzeige hat sich auch geklärt, die liefern wohl die Squeezelite clients nicht, bei meinem Squeezebox-Radio geht es.

Schau ich mir an.

Habe gerade alles für das Update der heutigen IPS-Version fertig.

Ich teste noch etwas und dann kommt gleich das Update.

Michael

So neue Version ist auf GitHub.
Änderungen (so auf die Schnelle…Sofa ruft :smiley: )

[ul]
[li]LMS_Get* und LSQ_Get* Befehle geben jetzt Werte zurück (teilweise auch Array…Doku… naja nicht heute :smiley: )[/li][li]LSQ_Set* und LMS_Rescan geben true/false zurück bei Erfolg/Misserfolg[/li][li]Modul wirft bei Problemen mit der Kommunikation oder Konfiguration korrekte Exceptions.[/li][li]Status der Instanzen wird korrekt gesetzt (inaktiv, Fehlerhafte Konfig, LMS nicht erreichbar etc…)[/li][li]Fehler bei den Standardaktionen für Shuffle und Repeat behoben.[/li][li]Cover wird korrekt (neu und auch nach) geladen, sobald LMS neue MetaDaten bereitstellt.[/li][li]Freeze des ClientSocket und aller Modulfunktionen wenn 0x27 auf dem Socket empfangen wurde. (z.B. Titel mit Apostroph) Danke an Paresy für den schnellen Fix :)[/li][/ul]

Michael

PS: Ich habe das verhalten von nicht SqueezeBox-Clients, welche per IP anstatt MAC-Adresse angesprochen werden, noch nicht weiter getestet. Und kenne auch nicht die Leistungsfähigkeit dieser Einbindung. Wer da Geräte/Erfahrung hat, kann das ja mal bitte testen.

Danke für die Änderungen, werde ich später mal testen.

Was könnten das für Clients sein?
Ich habe hier „echte“ Squeezeboxen (Radio, Transporter) und eben emulierte Clients mit piCorePlayer respektive Squeezelite. Alle sind aber mittels MAC-Adresse anzusprechen.

Du kannst z.b. auch per VLC dir einen Stream holen und den per Webbrowser über die Weboberfläche des LMS steuern.
Michael

Wer brauch denn sowas :wink:

Naja… kannst ja auch ein Tablet nehmen oder xbmc… oder whatever einen Stream abspielen kann :smiley:

Update: Hab es mal getestet. Ja geht… aber durch das caching der Software auf den IP-Clients eigentlich nicht zu gebrauchen.
Playlist laden und dann kommt in 10-15 Sekunden endlich mal der erste Ton aus dem Gerät. Aber die Position vom Server zeigt schon auf 15 Sekunden :smiley:
Play / Pause / Stop haben alle immer diese Verzögerung. Lautstärke geht gar nicht, da diese ja nicht Bestandteil des Stream ist.
Nette Spielerei, aber für mich auch nicht zu gebrauchen.

Michael

So wieder eine neue Version.

[ul]
[li]Rückgabewerte waren Typenlos bzw. immer String.
[/li][li]Funktionen gaben false zurück, obwohl Funktion korrekt ausgeführt wurde.
[/li][li]Enthielten Zeichenketten (Name, Titel etc…) ein + oder : wurden diese nicht korrekt verarbeitet.
[/li][li]Alle Funktionen werden jetzt, mit den erwarteten Parametern + Typ, in IPS angezeigt.
[/li][/ul]

Michael

PS: Doku werden ich jetzt Stückweise im ersten Post anhängen.

Wirst du den Sync Zwischen zwei oder mehr Boxen bzw Alternativ Playern noch einbauen? So das man quasi im Webfront die Möglichkeit Squeezebox Wohnzimmer und Küche und/oder weitere Boxen zu Synchronisieren ? Und wieder von einander zu lösen?

Das mach ich jetzt immer über den LMS ! Ist aber umständlich!

Ich habe auch noch keine Möglichkeit gefunden groß mit den Playlisten zu Arbeiten! Aber das kommt ja glaube ich noch erst, oder ? Falls der Faktor Zeit mitspielt, richtig? :).

Ich möchte die Boxen halt zur Sprachausgabe nutzen!

  • Position auslesen
  • mp3 bzw wav file in die Playlisten adden
  • nach dem abspielen wieder löschen
  • wieder zu alten Position zurück springen

Das meisten von dir gewünschte geht schon bzw. mit Einschränkungen oder über Umwege.
Sync kommt noch.
Playlist bearbeiten fehlt noch.
Aber eine aktuelle Playlist speichern und dann eine mit der Ansage (zum erstellen erst manuell wiedergeben und einmalig auch speichern) laden geht schon.
Position und Track anspringen geht auch schon.
Und ja… Zeit ist aktueller DER Faktor :wink:
Michael

Fünf neue Funktionen für die PHP-Befehle:


Syncronisieren:

boolean LSQ_SetSync(integer $InstanzID, integer $SlaveInstanzID);
SlaveInstanzID wird als Client dem InstanzID zugeordnet.

boolean LSQ_UnSync(integer $InstanzID);
Löst $InstanzID aus der Syncronisierung von dem Master.

mixed (array or boolean) LSQ_GetSync(integer $InstanzID);
Liefert alle InstanzIDs der mit $InstanzID gesyncten Geräte als Array.
false wenn kein Sync aktiv ist.

Wenn ihr bei laufender Wiedergabe einen Sync macht, wird aktuell der Client nicht abgefragt, bis zum nächsten Titel.
Da hilft ein nachgeschobenes LSQ_RequestState als Workaround.

Und im ersten Post wurde ein Teil der Doku ergänzt…und wird noch immer.
Michael

Und heute noch mal ein kleines Update (dafür intern etwas umgebaut, damit ich die Playlisten bald komplett einbinden kann)

array LSQ_GetSongInfoOfCurrentPlaylist (integer $InstanzID)
Gibt die Aktuelle Playlist eines Gerätes als Array zurück.

Michael

Läuft Super!

Aber wie kann ich jetzt eine mp3 abspielen die bzw in /usr/share/symcon/media/test.mp3 liegt oder iregendwo anders?

Ich finde nur LSQ_PlayTrack aber da kann ich ja keinen Pfad eingeben!

Wahrscheinlich muss ich die Datei doch auf eine Freigabe auf dem der LMS Server auch zugreift speichern oder?

Du kannst nur Dateien auf welche der LMS Zugriff hat abspielen.
PlayTrack ist nur um auf einen bestimmten Track in der aktuellen Playlist zu springen.
LoadPlaylist könnte gehen.
Pfad Angaben sind immer relative zum LMS Medienverzeichnis.
Sonst musst du leider warten, bis ich das bearbeiten von Playlisten fertig habe.
Michael

Das Funktioniert, top genau wie ich mir das vorgestellt habe! Vielen Dank

Eine merkwürdige Sache gibt es noch! Schaut euch mal das Coverbild an wenn ich meine test_tts.mp3 abspiele, muss mir das zu denken geben :slight_smile: :slight_smile:

Sehr geil :eek:, Modul, LMS Server und Boxen konfiguriert und es läuft inkl. Webfront :D.

Das Kommando hast du
LSQ_SetUnSync
genannt.

Update:
Das Cover-Bild bekomme ich nicht angezeigt. Es wird unter /usr/share/symcon/ direkt angelegt, nicht im media Ordner und enthält

<HTML><HEAD><TITLE>404 Nicht Gefunden</TITLE></HEAD><BODY><H1>Nicht Gefunden</H1>Die angeforderte URL kann auf dem Server nicht gefunden werden.</BODY></HTML>

SqueezeBoxen und SqueezeLite zeigen Bilder an.

Das passiert wenn man die Doku später erstellt :wink:
Werde ich dort, beim nächsten Update, noch mal korrigieren. Danke.

Zum Cover:
Welche Version vom LMS hast du ?
Geht die Website vom LMS ? Port vom LMS Webserver korrekt ? Das es nicht unter Media liegt ist egal. Wird eh nur dynamisch geladen und soll später auch automatisch gelöscht werden.
Michael

Das hatte ich vorhin auch noch gesehen und geändert. Allerdings ist dann das IPS abgestürzt. Eher unwahrscheinlich, das es am Squeeze Modul lag, obwohl nur ganz wenige andere Dinge vorhanden sind und laufen.

Leider waren dann diverse Einstellungen weg, MAC Adressen und Server IP, aber auch von meinem LCN Splitter die IP.

Nach erneutem Eintragen und korrektem Webserver Port gibt es dann auch Cover Bilder :).

Wenn du jetzt noch das Wecker Management einbaust muss ich zeitnah auf den RPi wechseln ;), unter Windows bin ich da noch nicht so richtig weitergekommen.

Denn habe ich auch schon gesehen und auf meine Liste gesetzt. Wird diese Woche aber eher wenig passieren.
Das mit den Einstellungen ist leider noch ein Bug in IPS. Da hoffe ich ja das Paresy dies bald fixt.
Michael