Sonos Modul

Ja Wolfgang, war gerade am rausziehen.
Falls mal was gesucht werden muss, mache ich das mit den „Developer Tools for UPnP™ Technology“.

Da ja nicht alles gleich ist, ist es manchmal mühsam die Dinge zu finden, die man angezeigt haben möchte.
Thorsten macht das schon viel besser, als ich. :smiley:
Ich habe Sonos auch nur fast für meinen Lieblingsradio am laufen, da dort alles klappt, suche ich nicht gross.
Auch bastel ich mir über die Daten vom Sonos Modul einen Text, den ich wieder im LCN-GT4D anzeige, dass klappt per IPS super.

Bei mir lief zunächst alles wie gewohnt …

… bis ich die neue Funktionalität ausprobiert habe, direkt die Musik von Spotify aus auf meinen Geräten auszugeben.:smiley:

Hier kommt es leider zu einem Problem:

Wenn eine Verbindung von Spotify aus aufgebaut worden ist und dann z.B. mit SNS_PlayFiles() eine Sprachdurchsage erfolgen soll, dann wird Spotify korrekt angehalten und die Sprachausgabe durchgeführt. Aber die Wiederaufnahme des Spotify Streams gelingt nicht. Es kommt zu der Fehlermeldung:

Error: Uncaught exception 'Exception' with message 'Error during Soap Call: UPnPError s:Client 714 (ERROR_AV_UPNP_AVT_ILLEGAL_MIME)' in C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php:552
Stack trace:
#0 C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php(370): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'SetAVTransportU...', Array)
#1 C:\IP-Symcon\modules\SymconSonos\Sonos\module.php(467): SonosAccess->SetAVTransportURI('x-rincon-queue:...', '<DIDL-Lite xmln...')
#2 C:\IP-Symcon\scripts\__generated.inc.php(112): Sonos->PlayFiles(Array, 0)
#3 C:\IP-Symcon\scripts	est.ips.php(475): SNS_PlayFiles(21809, Array, 0)
#4 {main}
  thrown
   Error in Script C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php on Line 552
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   34 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  123 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler

Daraufhin ist dann die Musikwiedergabe unterbrochen und man muss in Spotify die Verbindung erneut herstellen:(

Vielleicht kann Thorsten sich das einmal anschauen.

Gruß

Burkhard

Das stimmt aber man muss sagen die Funktion taugt eh nichts weil man in Spotify nur einzelne Lautsprecher auswählen kann und nicht gruppieren.

Sebastian

@Sebastian: das stimmt so nicht. Man kann auch in Spotify über ‚…‘ weitere Lautsprecher einbinden.

Ich habe durchaus Gefallen an der neuen Funktion (‚Spotify Session‘) gefunden. Ich finde es viel schöner, in Spotify zu browsen als im Sonos Client.

Gruß

Burkhard

Hi,

ich hab das selbe Problem mit Amazon Music Streams.
Die Wiedergabe stoppt und die Lautstärke wird ebenfalls nicht zurückgestellt.

LG,
Peter

Hallo,

es gibt bei Sonos die beiden Funktionen, GetPositionInfo() und GetMediaInfo().

in der positionInfo gibt es jetzt die Felder streamContent, title, artist und viele mehr.

actuallyPlaying fülle ich z.B: abhängig davon ob „streamContent“ gefüllt ist:


    if ($positionInfo["streamContent"]){
      $actuallyPlaying = $positionInfo["streamContent"];
    } else {
      $actuallyPlaying = $positionInfo["title"]." | ".$positionInfo["artist"];
    }

In der Media Info gibt es nochmal ein Feld title…
die Variable title wird nun aus einem der beiden gesetzt:


    if(@$mediaInfo['title']){
      SetValueString($vidTitle, @$mediaInfo['title']);
    }else{
      SetValueString($vidTitle, @$positionInfo['title']);
    }

und so weiter.
Alles in allem ziemlich viel rumgerate :frowning:

Mach mal bitte folgendes wenn Du wieder die Fehlersituation hast:


<?
include_once("../modules/SymconSonos/Sonos/sonosAccess.php");
$sonos  = new SonosAccess("<Dein Sonos Host oder IP auf dem gerade Deezer läuft>");

print "MediaInfo:
";
var_dump($sonos->GetMediaInfo());
print "
PositionInfo:
";
var_dump($sonos->GetPositionInfo());
?>

Evtl. kann ich mein Gerate dann ja verbessern…

Gruß,
Thorsten

Hallo,

dan Ganze findet in dem script „_updateStatus“ statt.

Gruß,
Thorsten

Hallo,

Ihr findet da Sachen…

Also:
ERROR_AV_UPNP_AVT_ILLEGAL_MIME bedeutet, dass das Medium nicht unterstützt ist.
Ich konnte es bei mit nachvollziehen, finde aber keine Lösung dazu. :mad:

Vorerst kann ich nur sagen, dass ich wiedergabe über Spotify in Verbindung mit PlayFiles() nicht unterstützen kann.

Das scheint neue Funktionalität zu sein, wo eine Verbindung zwischen Spotify und Sonos aufgebaut wird, die durch ändern der Wiedergabe in Sonos verworfen wird.
Geht auch wenn man in der Sonos Liste „Sitzung Beenden“ drückt :wink:

Und dann habe ich auch in der Sonos App Keine Möglichkeit sich wieder mit dem Spotify Gedöns zu verbinden.

Ich fürchte zu diesem Problem gibt es vorerst keine Lösung.

Gruß,
Thorsten

Hallo,

das sieht ähnlich aus, ist aber etwas anderes!

Hier kann der Stream zwar wieder eingestellt werden, nur das Springen an die aktuelle Position funktioniert nicht.
Das ist aber auch in der App so. Wenn ein solcher Stream wiedergegeben wird, kann man nicht spulen.

–> ich habe mal eingebaut, dass die Exception beim spulen ignoriert wird.

Dein Problem ist damit nach dem nächsten Update hoffentlich gelöst, bis auf dass dann ein anderes Lied aus dem gleichen Stream abgespielt wird.

Gruß,
Thorsten

Ich hatte es befürchtet:(

Dann brauchen wir wohl ein Spotify Modul:D

Danke fürs Prüfen.

Gruß

Burkhard

Jetzt schauen wir erst mal das die ersten OAuth Module gehen wenn das funktioniert kann man sich auch an ein Spotify Modul wagen.

Bitte sehr:

MediaInfo:
array(10) {
  ["NrTracks"]=>
  string(1) "1"
  ["MediaDuration"]=>
  string(15) "NOT_IMPLEMENTED"
  ["CurrentURI"]=>
  string(33) "x-rincon:RINCON_000E58FFE26801400"
  ["CurrentURIMetaData"]=>
  string(0) ""
  ["NextURI"]=>
  string(0) ""
  ["NextURIMetaData"]=>
  string(0) ""
  ["PlayMedium"]=>
  string(7) "NETWORK"
  ["RecordMedium"]=>
  string(15) "NOT_IMPLEMENTED"
  ["WriteStatus"]=>
  string(15) "NOT_IMPLEMENTED"
  ["title"]=>
  string(0) ""
}

PositionInfo:
array(14) {
  ["Track"]=>
  string(1) "1"
  ["TrackDuration"]=>
  string(15) "NOT_IMPLEMENTED"
  ["TrackMetaData"]=>
  string(15) "NOT_IMPLEMENTED"
  ["TrackURI"]=>
  string(33) "x-rincon:RINCON_000E58FFE26801400"
  ["RelTime"]=>
  string(15) "NOT_IMPLEMENTED"
  ["AbsTime"]=>
  string(15) "NOT_IMPLEMENTED"
  ["RelCount"]=>
  string(10) "2147483647"
  ["AbsCount"]=>
  string(10) "2147483647"
  ["artist"]=>
  string(0) ""
  ["title"]=>
  string(0) ""
  ["album"]=>
  string(0) ""
  ["albumArtURI"]=>
  string(0) ""
  ["albumArtist"]=>
  string(0) ""
  ["streamContent"]=>
  string(0) ""
}

Vielen Dank für`s drum kümmern :slight_smile:

Hallo,

und in der Situation wird etwas abgespielt?!
Da steht ja NIX!

Gruß,
Thorsten

Hallo Kugelberg,

jetzt hast Du grade mal wieder Luft und kümmerst dich um die vielen zwischenzeitlichen Anfragen und Probleme.

Vielen Dank DAFÜR.

Ja, eben - und ja da wird was abgespielt… :slight_smile:

Ich hab es jetzt nochmal mit anderen Quellen probiert (Amazon music, lokale MP3) - keine Änderung. Ich habe das neueste release des Moduls.

So, Modul rausgeworfen, neu installiert - nu geht es :slight_smile:

Danke für die Hilfe !

Hat sich beim SOAP-Problem schon was getan ? Darf ich nochmals darauf hinweisen, dass das Problem nur besteht, wenn eine weitere Quelle aktiv ist ? Wenn also der Fernseher läuft gibts ein Fehler. Läuft nichts, dann funktioniert die Ausgabe einwandfrei.

Lässt sich das Probem damit nicht eingrenzen ?

Wäre dankbar.
Michael

Hallo,

es gibt ein SOAP-Problem?

Oder bist Du im falschen Thread?

Gruß,
Thorsten

@Thorsten: Schön wärs

Fatal error: Uncaught exception ‚Exception‘ with message ‚Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION)‘ in /var/lib/symcon/modules/SymconSonos/Sonos/sonosAccess.php:556
Stack trace:
#0 /var/lib/symcon/modules/SymconSonos/Sonos/sonosAccess.php(286): SonosAccess->processSoapCall(’/MediaRenderer/…’, ‚urn:schemas-upn…‘, ‚Pause‘, Array)
#1 /var/lib/symcon/modules/SymconSonos/Sonos/module.php(426): SonosAccess->Pause()
#2 /var/lib/symcon/scripts/__generated.inc.php(203): Sonos->PlayFiles(Array, 40)
#3 /var/lib/symcon/scripts/48713.ips.php(4): SNS_PlayFiles(48674, Array, 40)
#4 {main}
thrown in /var/lib/symcon/modules/SymconSonos/Sonos/sonosAccess.php on line 556

Moin,

nun ja, das würde ich nicht als SOAP-Problem bezeichnen.
Die Exception sagt aus, dass versucht wird Pause zu drücken, wenn dies an der Box nicht möglich ist.

Kannst Du mit eine GENAUE Beschrteibung der „Situation“ geben, wenn dieser Fehler auftritt?

  • Welche Boc ist betroffen?
  • Ist sie Teil einer Gruppe?
  • Ist die Teil eines Stereopaares oder eines 5.1 Setups?
    • Wenn ja, handelt es sich um die Aktive Komponente der Gruppierung?
  • Was wird gerade abgespielt?

Danke,
Thorsten