Seite 1 von 1

playSound auf mehreren SqueezeboxPlayern gleichzeitig

Verfasst: 9. Mär 2023 20:47
von Axxcup
Guten Abend,

habe mir jetzt eine Rule für meine Türklingel gebastelt:

Code: Alles auswählen

rule "doorbell"
when
    Item doorbell received command ON
then
    playSound("squeezebox:squeezeboxplayer:356f8d97e1:abcdef123472", "doorbell.mp3", new PercentType(60))
    playSound("squeezebox:squeezeboxplayer:356f8d97e1:abcdef123462", "doorbell.mp3", new PercentType(60))    
end
Funktioniert auch wunderbar, nur leider wird der Klingelton nicht gleichzeitig sondern nacheinander abgespielt.

Wie bekomm ich es hin das die Klingel auf mehreren Playern gleichzeitig und auch möglichst syncron gestartet wird?

Re: playSound auf mehreren SqueezeboxPlayern gleichzeitig

Verfasst: 9. Mär 2023 22:45
von udo1toni
Ich denke, Du musst die Player gruppieren (das müsste mit einem Befehl gehen, der das auf dem LMS macht). Also Player 1, 2 und 3 spielen das gleiche wie Player 4, anschließend Klingel an Player 4.
Sync Player ist der Channel dazu, Der String ist vermutlich der Playername, mit dem synchronisiert werden soll (also sozusagen der Masterplayer)

Re: playSound auf mehreren SqueezeboxPlayern gleichzeitig

Verfasst: 23. Mär 2023 21:53
von Axxcup
Danke @udo1toni für deine Antwort.

Das funktioniert vermutlich, aber wie bekomme ich nach dem Klingeln, also wenn die Rule ausgeführt wurde meinen Ursprungszustand wieder?

Heißt wenn vorher Player schon gruppiert waren, das diese nach dem Klingeln wieder genauso gruppiert sind?

Beispiel: Player 1, 2 und 3 sind schon gruppiert und es spielt gerade Musik, das türklingeln soll auf den Playern 1, 2, 3 und 4 stattfinden, anschließend sollen Player 1, 2 und 3 wieder gruppiert sein und die Musik fortsetzen.

Re: playSound auf mehreren SqueezeboxPlayern gleichzeitig

Verfasst: 23. Mär 2023 23:25
von udo1toni
Tja... das wird wohl hässlich werden...

Erst mal musst Du Dir merken, wie die Geräte vorher gruppiert waren, außerdem im Zweifel, was gerade abgespielt wird, das musst Du alles retten, dann auf Klingel umschalten, den Klingelsound abspielen und den alten Zustand wiederherstellen.

Mann, bin ich froh, dass ich eine popelige Ritto mit Twinbus verbaut habe, da bleibt mir so ein Sch..ß erspart... ;)

Nicht, dass ich keine Vorbereitungen getroffen hätte... aber ich würde es anders lösen, weil ich anders lösen könnte. Meine Squeezeboxen sind nämlich gar keine, sondern squeezelite Player, die auf einem Odroid U3 laufen (schon seit ca. 2009). Der Odroid ist mit einer 7.1 Soundkarte verbunden, deren Ausgänge paarweise auf vier DD-Endstufen gehen. Die Ausgänge der Endstufen sind in vier Räume verteilt.
Damit nun vier voneinander unabhängie Audiostreams laufen können, habe ich mit Alsa etwas gezaubert, so dass aus dem 7.1 Ausgang vier stereo Ausgänge werden. Und wenn man schon Sound Mappings erstellt, kann man natürlich noch einen weiteren Ausgang bauen, auf den alle Ausgänge gemappt sind. Das heißt, auf dem Odroid laufen fünf Instanzen des squeezelite, ich würde also im Fall der Fälle die Player pausieren und den Sound aus dem Extraplayer ausspielen. Sorry, das geht so natürlich nur, wenn der zusätzliche Weg zur Verfügung steht. Alle anderen müssen Hirnschmalz investieren, um den Zustand der Player zu sichern und wiederherzustellen. :lol: