Sonos Modul

Moin,

ich überlege auch, von der IPSLibrary auf dieses Modul umzustellen. Ich nutze gerne Gruppenfunktionen - bietet das Modul hierzu auch Funktionen ?

Ich habe mir dazu einige Skripte zusammengestrickt, so z.B. Bilden einer Gruppe, Auflösen einer Gruppe und (sehr nett) das Verschieben einer laufenden Ausgabe auf eine andere Sonos (wenn man z.B. vom SZ in das WZ wechselt).

Wäre für mich spannend zu wissen, ob das von diesem neueren Modul auch unterstützt wird.

Hallo,

hast Du Dir schon mal das Readme im Git Repository angeschaut?

Grouping Funktionen sind vorhanden.

Dort sind (falls ich nichts vergessen habe) alle Funktionen kurz beschrieben.

Das umziehen einer Ausgabe auf eine ander Box finde ich interessant. wäre auch nicht so aufwendig, denke ich.
Eine Funktion SNS_MoveOutput( <sonos_id, <target_sonos_id>);
Könnte man drüber nachdenken…

Gruß,
Thorsten

Schande, auf das ReadMe bin ich erst jetzt gekommen. Da steht ja alles drin :o

Ja, das Verwschieben einer Ausgabe ist toll, besonders wenn man das an BMIs koppelt und die Musik einem dann hinterherläuft :smiley:

Würde mich freuen, wenn diese Idee umgesetzt wird.

Bitte das wäre cool!

Hi Kugelberg,

Ich plane gerade an einer Umgestaltung meines Netzwerks.
Mein RPI Symcon Server soll in ein anderes Netzwerksegment als die Sonos Lautsprecher.
Könntest Du mir bitte sagen, welche Ports ich explizit erlauben muss damit symcon mit den Lautsprechern reden kann?

Danke Sebastian

Hi,

Es werden lediglich http calls auf Port 1400 ausgeführt.

Gruß,
Thorsten

Vielen Dank

Hi Thorsten,

ich habe mir gerade mein IPS-Startlog angeschaut und bin über folgendes Problem gestolpert:


09:31:16 | 11313 | MESSAGE | Sonos                | Erstelle...
09:31:37 | 11313 | ERROR   | InstanceManager      | Error: "Failed to connect to 192.168.4.131 port 1400: Timed out" - Code: 7

Es „scheint“, dass SONOS-Modul verzögert meinen IPS-Systemstart um 21 Sekunden (zwischen beiden obigen Zeilen gibt es keine IPS-Log-Einträge).

Ursächlich für die an und für sich richtige Meldung ist, dass mein „SONOS im Garten“ schon seinen Winterschlaf hält. Was kann ich denn tun um diese Verzögerung möglichst gen NULL zu bekommen?

Ciao
HerbertF

Hallo,

spontan würde ich vorschlagen, den Timeout in der Instanzconfig runterzudrehen.

Wenn das nicht hilft müsste man in der Instanz etwas anbieten, dass man sie manuell auf inaktiv schaltet. Dann sollten die Scripte nicht mehr laufen.

Oder halt löschen und im Sommer wieder anlegen.

Gruß,
Thorsten

Hallo,

erst mal vielen Dank für das super Modul. Ich habe jedoch ein Problem. Wenn ich über die SonosApp eine Gruppe mit mehreren Playern erstelle hagelt es Fehlermeldungen.

Ich habe die IPSLibrary installiert, die Meldungen werden darüber ausgegeben:


Error: Warning: SoapClient::__doRequest(): connect() failed: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.


   Error in Script C:\IPSymcon\modules\SymconSonos\Sonos\sonosAccess.php on Line 546
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
      in __doRequest
  546 in modules\SymconSonos\Sonos\sonosAccess.php (call __soapCall)
  190 in modules\SymconSonos\Sonos\sonosAccess.php (call processSoapCall)


Error: Error: Uncaught exception 'Exception' with message 'Error during Soap Call: Could not connect to host HTTP' in C:\IPSymcon\modules\SymconSonos\Sonos\sonosAccess.php:554
Stack trace:
#0 C:\IPSymcon\modules\SymconSonos\Sonos\sonosAccess.php(190): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'GetTransportInf...', Array)
#1 C:\IPSymcon\scripts\25634.ips.php(37): SonosAccess->GetTransportInfo()
#2 {main}
  thrown
   Error in Script C:\IPSymcon\modules\SymconSonos\Sonos\sonosAccess.php on Line 554
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   33 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)

Ich habe mal geschaut, kann aber mit meinen Kenntnissen nichts erkennen.

Sowohl das Modul als auch das Sonos System sind up to date.

Gruß
Christian

Hallo Zusammen,

zuerst mal herzlichen Dank für dieses super Modul.
Ich benutzte für die Visualisierung IPS-View.
Wie kann ich das Cover sowohl Radio, als auch Playlist einzeln ohne Text zentriert anzeigen lassen?

Gruß

Alex

Es gibt ja die Variable CoverURL, daraus kannst Du Dir individuell Deine eigene HTML Seite mit dem Cover bauen. Oder aber alternativ aus der CoverURL ein Medien Element im Medienpool erstellen und dann dies anzeigen lassen. Bei Radio wird vom Modul das Feld CoverURL zur Zeit nicht befüllt. Dem Modul ist das Cover aber trotzdem bekannt. So lange das so ist und das Feld CoverURL nicht zur Verfügung steht kannst Du die URL einfach aus der Variable Details auslesen.


 $sonosid = 28677 /*[Geräte\Heimkino\Audio\Sonos\Sonos Bad]*/; //ObjektID des Sonos Players
 // Config End -------------------------------------------
 $details = GetValue(IPS_GetObjectIDByIdent("Details", $sonosid)); // Detail Variable des Sonos Players
 $picurlstart = strpos($details, '<img src="');   
 $picurlend = strpos($details, '" style="max-width: 170px; max-height: 170px; -webkit-box-reflect');
 $picurllength = $picurlend - ($picurlstart+10); 
 $picurl = substr($details, ($picurlstart+10), ($picurllength));
echo $picurl;

Danke Fonzo,

werde es heute Abend mal probieren. Bin noch nicht ganz so fit in IPS. Genau so wie auf deinem Bild in #5… habe ich es mir vorgestellt. Das der Pfad in der VAR Coverurl angezeigt wird, habe ich gesehen, aber eben nicht vom Radio.

Falls ich noch Hilfe brauche, würde ich mich nochmal melden.

Gruß Alex

Meinst Du das das hier #536?
Das ist mit NEO gemacht geht aber mit IPSView genauso. Den Slider für Fortschrittanzeige musst Du Dir noch eine Variable anlegen das steht ja in dem Post. Das Cover ist in dem Fall eine HTML Seite. Für NEO hatte ich hier mal aufgeschrieben wie man vorgehen kann. Die Skripte kann man sich denke ich bei IPSView sparen, das Cover könnte man da aber analog einbauen oder eben als Medienelement aus IP-Symcom dann hast Du aber keinen Kipp- und Spiegeleffekt.

Danke Fonzo,

ich möchte aber die URL als ein Image speichern und diese dann in IPSView darstellen. Somit kann ich das Bild nach meinen wünschen und ohne Rand skalieren. Bin in HTML noch blutiger Anfänger.
Dein Skript hat geklappt.Die URL liegt in der Variable.
Jetzt muss ich nur noch einen Weg finden diese IPSView anzuzeigen. Entweder als html oder Image.

Deine Beschreibung zu neo hab ich gelesen. Wie bekomme und ausprobiert. Wie bekomme ich die Cover.php in die html-Variable? Bin halt noch Anfänger.

Gruß Alex

Wenn Du der Anleitung im Homematic Forum gefolgt bist, hast Du eine Datei SonosCover.php (am besten noch mal den aktuellen Code holen). In IPSView gibt es genauso wie in NEO eine Möglichkeit Webseiten einzubinden.
Web & HTML - - IPSView*2.2 Dokumentation

Das Element heißt in IPSView Webview. Dort gibst Du einfach die URL ein. Die Größe kannst Du verstellen indem Du den Parameter size mit übergibst. Der Aufruf mit 200x200 wäre dann:


http:// [IP-Symcon IP]:3777/user/verzeichnisname/SonosCover.php?objektid=12345&size=200

Hi,

das hört sich für mich stark danach an, als wenn da eine Firewall oder ähnliches dazwischen wäre.

Kann das sein?

Gruß,
Thorsten

Hallo Thorsten,

nein ist eigentlich unmöglich. Intern sind alle Geräte im gleichen Netz, alle direkt an der Fritz.Box angeschlossen.

Die Gruppe wird auch erzeugt, aber das Modul wirft eben diese Fehler.

Gruß
Christian

Hallo Fonzo,

bin nun endlich dazu gekommen deine Vorschläge umzusetzen. Hat super geklappt. Allerdings aktualisiert das Cover in IPSView nicht sofort beim wechsel des Covers. Man kann nur eine vordefinierte Zeit in Min. aktualisieren lassen. Also dauert es immer bis zu einer Minute bis das Cover aktualisiert ist. Hab’s jetzt doch über die HTML-Box dank deiner Hilfe hinbekommen und es läuft perfekt.

Vielen Dank für deine Hilfe.

Jetzt habe ich noch das Problem, dass nicht immer das Cover eines Radiosenders angezeigt wird.

Sonos Instanz: Stations in Webfront: <all>
Beispiel:

Schalte ich über IPS auf Bayern 3 kommt das Cover.
Schalte ich über die Sonos-App auf Bayern 3 kommt kein Cover.

Sonos Instanz: Stations in Webfront: leer => Favoriten aus Sonos

Schalte ich über IPS auf Bayern 3 kommt kein Cover.

Kann mir bei diesem Problem noch jemand helfen?

Gruß Alex

Da musst Du mal im Thread zu IPS-View fragen. Vielleicht gibt es ja eine Möglichkeit IPSView anzuweisen bei einem Event in IP-Symcon die Seitenansicht neu zu laden.

Wird das Cover denn in der Detail Ansicht in IP-Symcon angezeigt wenn man über die Sonos App auf Bayern 3 umschaltet?