Sonos Status als Variable

Moin
Ich möchte den Status meines Sonos auslesen. Jedoch ohne Plugin, bzw VD.
Auf einer Seite hab ich gelesen, daß mit getTransportInfo der Status play, pause mit 1, 0 ausgelesen werden kann. Ich habe bereits einiges ausprobiert, jedoch ohne Erfolg. Es muss doch eine Möglichkeit den Playstatus, bzw. Zone abzufragen und das Ergebnis in eine Variable einzusetzen.

Hi,

Ohne PlugIn und ohne VD?

Hast Du fir das einmal
angesehen ? Geht über API.

https://forum.fibaro.com/index.php?/topic/24949-vd-sonos-players-status-v10-3-step-setup/

Viele Grüße Hoggle

Hi
die seite hatte ich auch schon gefunden, komme trotzdem nicht weiter.

Hi,
Womit genau kommst du nicht weiter?
Die Status-Abfrage mit dem VD funktioniert bei mir.

Viele Grüße Hoggle

Hi
was hast du denn im VD geändert? Der Port sollte 1400 sein und in Zeile 10 die Namen der Räume ändern??

Nutzt du die API und hast den RPI entsprechend eingerichtet?

Ich habe keinen Raspberry Pi!

Hi,

Du willst (siehe 1. Post) den Status weder über ein VD noch das Sonos-Plugin auslesen, hast aber auch keinen RPI.
Da komme oich nicht mit.
Wie soll das sonst funktionieren?

Warum nimmst Du nicht das PlugIn?
Das ist der simpelste Weg.
Sieht ca so aus, wobei “5” die ID des Sonos-PlugIn ist:


then
  if (fibaro:getValue(5, "state") == "STOPPED") then
	fibaro:debug("if-Schleife")
    fibaro:debug("The state is: " .. fibaro:getValue(5, "state"));fibaro:setGlobal("SONOS_RADIO", "radiohamburg.hoerradar.de/radiohamburg-live-mp3-192?");
	fibaro:call(206, "pressButton", "1");
   elseif (fibaro:getValue(5, "state") == "PLAYING") then
   	fibaro:debug("The state is: " .. fibaro:getValue(5, "state"));
    fibaro:call(206, "pressButton", "4");  --Stop 
  end
end
fibaro:debug("Am Ende ist The state: " .. fibaro:getValue(5, "state"));

VG Hoggle

Moin
Ich benutze den Sonos hauptsächlich über die iPad App.
Mein Plan ist: Wenn im Wohnzimmer die Musik läuft soll die Variable auf Play gestellt werden, ansonsten auf Stop.
wenn ich ins Bad gehe soll dort die gleiche Musik abgespielt werden wie im Wohnzimmer, wenn dort die Variable auf Play steht. Ist die Musik im Wohnzimmer aus, also die Variable auf stop, soll beim betreten des Badezimmers den Radiosender abspielen.

Dann nutzt du am besten das PlugIn und orientierst dich am obigen Script, um deine Variable zu setzen.

Moin
Ich hab jetzt ein VD erstellt mit einer Schleife. Ich glaube, daß das die Lösung sein muss. die Variable ändert den Status nach einer Sekunde. Das sollte reichen. Der nächste Schritt ist jetzt die Szene für das Bad zu schreiben.
Vielen Dank

selfId = fibaro:getSelfId()
status = fibaro:getGlobal(“SonosStatus”)
fibaro:call(selfId, “setProperty”, “ui.status.value”, status)

if (fibaro:getValue(6, “state”) == “PLAYING”)
then

fibaro:setGlobal(“SonosStatus”, “Play”);
fibaro:log(“SonosStatus=Play”);
fibaro:debug(“SonosStatus=Play”);

elseif (fibaro:getValue(6, “state”) == “PAUSED_PLAYBACK”)
then

fibaro:setGlobal(“SonosStatus”, “Pause”);
fibaro:log(“SonosStatus=Pause”);
fibaro:debug(“SonosStatus=Pause”);
end

Hallo,
kann mir jemand dabei helfen ob es einen Befehl gibt den aktuellen Sender auszulesen der gestreamt wird? Diese Info dann Local zu speichern damit ich sie am Ende eines LUA wieder nutzen kann!?
Ziel:

  • Stream läuft
  • Durch einen Trigger wird ein Jingle ausgelöst (Türklingel über Sonos)
  • Automatisches Fortsetzen des letzten Zustandes inkl. des letzten Streams

Ich habe alles am laufen. Nur leider bekomme ich es nicht hin das der Sonos Commander nach abspielen eines Buttons wieder zurückspringt.

Ich könnte zwar einen neuen Stream starten nach dem Jingle. Ist aber eine schlechte Lösung weil man ja auch mal verschiedene Radiostationen hört (oder der Sonos gar aus war)

Danke für eure Hilfe

Gruss aus Bremen
Mike