[Archiv][Modul] Squeezebox (Testversion)

Hi, dass Script ist leider noch nicht soweit das es alles automatisch erstellt. Soweit sind/waren meine php Künste noch nicht. Man muss es selber für sich und sein „Squeezbox Netzwerk“ anpassen. Dafür hab ich aber alle benötigten Befehle mit bei gelegt. :smiley:

Schritt 1: Wie viele Boxen hab ich ?


$id_zahl = LMS_GetNumberOfPlayers($LMS_id);
//------------------------
echo "LMS: $id_zahl (Anzahl angemeldeter Squeezeboxen.)
";  

Schritt 2: Wie sind die IDs und die Namen ?
Hier muss man Hand anlegen und bei mehr oder weniger Boxen eine Anpassung vornehmen. (Ich hab 3)


$info_id_0 = LMS_GetPlayerInfo($LMS_id, 0);
$info_id_1 = LMS_GetPlayerInfo($LMS_id, 1);
$info_id_2 = LMS_GetPlayerInfo($LMS_id, 2);
//------------------------
$name_id_0_array = array_slice($info_id_0, 5, 1);
$id_id_0_array = array_slice($info_id_0, 11, 1);	
$squeezebox_0_name = implode("", $name_id_0_array);
$squeezebox_0_id = implode("", $id_id_0_array);
//------------------------
$name_id_1_array = array_slice($info_id_1, 5, 1);
$id_id_1_array = array_slice($info_id_1, 11, 1);
$squeezebox_1_name = implode("", $name_id_1_array);
$squeezebox_1_id = implode("", $id_id_1_array);
//------------------------
$name_id_2_array = array_slice($info_id_2, 5, 1);
$id_id_2_array = array_slice($info_id_2, 11, 1);
$squeezebox_2_name = implode("", $name_id_2_array);
$squeezebox_2_id = implode("", $id_id_2_array);
//------------------------
echo "Squeezbox 0: $squeezebox_0_name hat die ObjektID: $squeezebox_0_id.
";
echo "Squeezbox 1: $squeezebox_1_name hat die ObjektID: $squeezebox_1_id.
";
echo "Squeezbox 2: $squeezebox_2_name hat die ObjektID: $squeezebox_2_id.
";

Schritt 3: Profil anpassen. (Wenn man mehr oder weniger als 3 Boxen hat - ansonsten passt das so)
Schritt 4: Befehle anpassen. (Wenn man mehr oder weniger als 3 Boxen hat - ansonsten passt das so)

Hallo,

danke für deine Antwort. Leider schnalle ich noch nicht ganz was ich machen muss.

Schritt 1:

1.JPG

Was bedeutet das für mich? Habe bisher ebenfalls drei Raspberrys als Squeezebox im Einsatz.

Schritt 2:

2.JPG

Hier wird mir als ObjektID immer none angezeigt, woran liegt das?

Müssen die ermittelten Namen und ID´s irgendwo eingetragen werden? Oder muss man nur etwas abändern wenn man mehr als drei Player hat?

Danke und Gruß
Stephan

@Nall chan
Kannst Du mir den Port sagen, auf dem die Akku-Überwachung zu telefonieren versucht?

Meine Squeezebox sitzt in einem anderen Subnetz und ich muss mit Port-Weiterleitung arbeiten. Das klappt mit dem Modul eigentlich problemlos, nur die Akku-Überwachung scheitert.

Grüße
galleto

Du musst auf der Box den SSH-Zugang aktivieren, Port 22.
Michael

Läuft. :slight_smile:

Dank und Grüße
galleto

Moin.

Habe gerade durch Zufall gesehen dass es wohl ein Update für das Modul gab. Naiv einfach mal draufgedrückt, aber nun gehen keine meine SB mehr, „Instanz ist in einem unbekannten Status mit dem Code 201“??? :frowning:
Splitter und LMS Instanz sind in Ordnung und verbunden…

Hab ich was verpasst, gab es eine signifikante Änderung? Was muss ich tun??

Danke!

Waren eigentlich nur Doku Anpassung im Code und zwei Fixes für Fehler welche in der 4.2 auftraten.
IPS Mal neu gestartet ?

Michael

ok, das hat geholfen…merkwürdig. Danke!

—edit—
Hab jetzt aber noch folgenden Fehler ständig im Log:

Alle SB sind Online und erreichbar:confused:
Passiert sobald eine aktiv läuft. Bei allen…

Setzt Mal manuell in der Konsole die Variable isConnected auf true. Eventuell hat die Instanz nicht mitbekommen dass die Box online ist.
Ich weiß schon warum ich das Teil komplett überarbeite… Da sind zu viele Würmer drin :wink:
Michael

Ja, auch das hat für den Moment geholfen. Aber irgendwie ist da der Wurm drin. Zwischendurch bekomme ich immer mal wieder den Fehler wenn ich versuche über das WF zu steuern.

Zumal ich vor dem Update wirklich überhaupt kein Problem mit deinem genialen Modul hatte! Von den reconnects mal abgesehen.

Ärger mich schon warum ich das gemacht habe…zurück geht vermutlich nicht mehr!?

Ich habe eben auf GitHub mal die Änderungen seit 1.2.2016 durchgesehen.
Das waren alles Änderungen, welche die Funktion nicht beeinträchtigen.

Wenn IPS das unterstützt, vielleicht kannst du den alten Stand als URL im Modul Control eintragen.
Also das Modul löschen und dann versuch mal

1.2.2016: https://github.com/Nall-chan/IPSSqueezeBox/tree/e01803b6bf468cac9bb3ee31a4f3e87db3045712

oder

16.1.2016: https://github.com/Nall-chan/IPSSqueezeBox/commit/0326fef8de497b3eca5f3fa8a1d3201a896bc569

vielleicht funktioniert das.
Testen kann ich es heute leider nicht.

Michael

Hallo zusammen

Frage, hat jemand von euch auf basis dieses Modules bereits das ein und ausschalten des Weckers Implementiert?:o
Ich möchte eigentlich nur alle Wecker ein und ausschallten können auf dem jeweiligen Geröt. Die Wecker einstellungen mache ich am Gerät selbst. Auf Basis der alten Squeezbox Skripts hatte ich das damals Implementiert. gibt es bei dem modul eine möglichkeit dies zu realisieren? Ein kleiner Wink würde mir schon weiterhelfen :wink:

Merci und Gruss aus der kalten Schweiz.

Dani

Moinsen,

wie schnell ist das ganze bei euch ?

IP-Symcon läuft auf nem Raspberry und LMS auf nem Thecus NAS …

Wenn ich jetzt ne Ansage mache …


				LSQ_RawSend(48107 /*[Squeezeboxen\m2pFlur]*/, "playlist", "clear", true);
				LSQ_RawSend(48107 /*[Squeezeboxen\m2pFlur]*/, "playlist add", "/raid0/data/MP3s/sonstige/Smarthome/Anwesend.wav",true);
				LSQ_SetVolume(48107 /*[Squeezeboxen\m2pFlur]*/, 60);
				LSQ_Play(48107 /*[Squeezeboxen\m2pFlur]*/);

funktioniert das zwar, aber es dauert doch schon so 3sek bis was kommt …

Playlist ist sofort leer, aber dann dauert es ewig bis geladen wird

Ist das so oder hab ich da noch nen Gedankenfehler ?

Es kommt auch ziemlich häufig folgender Fehler

07.06.2017 13:07:30*| ScriptEngine*| Ergebnis für Skript 50934

<br />
<b>Notice</b>: Can not send to LMS-Splitter in <b>/var/lib/symcon/modules/IPSSqueezeBox/SqueezeBoxDevice/module.php</b> on line <b>2223</b><br />

Ansosten läuft das ganze TipTop
Grüße

Wenn ich das so mache …


$text = "b8:27:eb:ff:77:b8 playlist clear"."
";

CSCK_SendText(30566 /*[Test Squeezebox]*/, $text );

$text = "b8:27:eb:ff:77:b8 playlist add /raid0/data/MP3s/sonstige/Smarthome/Nachtmodus.wav"."
";

CSCK_SendText(30566 /*[Test Squeezebox]*/, $text );

$text = "b8:27:eb:ff:77:b8 mixer volume 30"."
";

CSCK_SendText(30566 /*[Test Squeezebox]*/, $text );

$text = "b8:27:eb:ff:77:b8 play"."
";

CSCK_SendText(30566 /*[Test Squeezebox]*/, $text );

geht das sofort … 50ms

Liegt das an der Playlistaufbereitung im Modul ?

Das liegt eher daran, dass die LSQ_* Befehle Thread-Safe sind.
Es wird immer auf die Quittung gewartet.
Der Fehler can not send deutet aber eher drauf hin das der Server nicht antwortet und somit noch auf eine Quittung gewartet wird.
Das Verhalten ändert sich aber demnächst, dann sollte das nicht mehr auftreten.
Michael

ahhh ok … danke für die Info

Hi zusammen,

Bei mir haben sich ein paar Fragen aufgetan:

a) Gibt es bereits eine Implementierung des Weckers?

b) Gibt es eine Möglichkeit eine Random Playlist auf Basis eines vorgegeben Genres zu erzeugen? Mit LSQ_LoadPlaylistByGenreID() bekomme ich leider nur eine Playlist ohne zufällig angeordnete Tracks.

c) Gibt es eine Möglichkeit Favoriten abzuspielen? Per CLI mache ich das über „$MAC favorites playlist play $item_id“

Natürlich kann man das sicherlich auch alles über CSCK_SendText() machen. Ist aber glaube ich der falsche Weg.

Schonmal vielen Dank für das tolle Modul und die kommenden Antworten.

Grüße aus Wiesbaden

Nein, bin ich aber dabei :slight_smile:

Du meinst vermutlich randomplaygenrelist.
Das ist noch nicht umgesetzt, habe ich irgendwie übersehen ^_^;

Nein noch nicht, ich bin erst dabei den Splitter dafür umzubauen, Dieser kann dafür schon Favoriten bearbeiten, das laden im Player fehlt noch.

Ich habe das alles mal auf die ToDo geschrieben.
Allerdings dauert es noch bis eine Version kommt.
Michael

Hallo Michael

Besten Dank für das Modul. Das funktioniert bei mir fast alles perfekt. Einzig die Playlisten werden nicht automatisch ausgelesen.

Mit dem Befehl

var_dump(LMS_GetPlaylists($instanzID));

erhalte ich meine Playlists jedoch problemlos aufgelistet.


array(9) {
  [0]=>
  array(5) {
    ["Id"]=>
    int(27916)
    ["Playlist"]=>
    string(11) "BeatBlender"
    ["Url"]=>
    string(35) "file:///Z:/playlist/BeatBlender.m3u"
    ["Tracks"]=>
    int(0)
    ["Duration"]=>
    int(0)
  }
  [1]=>
  array(5) {
    ["Id"]=>
    int(27917)
    ["Playlist"]=>
    string(19) "DI Premium Chillout"
    ["Url"]=>
    string(43) "file:///Z:/playlist/DI Premium Chillout.m3u"
    ["Tracks"]=>
    int(0)
    ["Duration"]=>
    int(0)
  }
}
-- SNIP --

Aber die Variable „Playlists“ unter LMSSplitter in den Splitter-Instanzen bleibt leer. Ich habe erwartet, dass diese Variable vom Modul her selber aktualisiert wird ?

Gruss Letraz

Ja, sollte selbstständig aktualisiert werden.
Allerdings kann es durchaus sein dass es unter bestimmten Rahmenbedingungen einfach nicht funktioniert.
Ich wollte zu IPS 4.3 eigentlich die neue Version veröffentlichen, dort ist das auf jeden Fall gefixt :slight_smile:
Dafür aber erst mit IPS 4.3 kompatibel. Also bitte noch etwas Geduld.
Michael