Sonos Modul

@Marcus
Ich habe dasselbe Problem auch noch. Kannst Du mal checken, ob mein Hinweis bei Dir auch zutrifft ? Also PlayFiles arbeitet bei Radio, aber nicht be TV ?

02.11.2016 22:11:52*| ScriptEngine*| Ergebnis für Ereignis 24756
<br />
<b>Fatal error</b>: Uncaught exception ‚Exception‘ with message ‚Error during Soap Call: UPnPError s:Client 800 (UNKNOWN)‘ in C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php:5 52
Stack trace:
#0 C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php(1 78): SonosAccess->processSoapCall(’/MediaRenderer/…’, ‚urn:schemas-upn…‘, ‚GetRemainingSle…‘, Array)
#1 C:\IP-Symcon\scripts\56883.ips.php(233): SonosAccess->GetSleeptimer()
#2 {main}
thrown in <b>C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php</b> on line <b>552</b><br />

Hallo Thorsten,
leider besteht der Fehler mit den SoapCalls noch immer.

Ich beschreibe mal mein System, vielleicht kannst Du dann eine Idee entwickeln.

Wohnzimmer:
Sonos Playbar, Sonos Sub, 2x Play1 (Im Sonos Sinn ein 5.1 System)

Küche:
Play3

Arbeitszimmer:
Connect

Bad:
Play1

Nur die Playbar im Wohnzimmer ist per LAN-Kabel mit meinem Netz verbunden. An allen anderen Stellen habe ich leider kein LAN um das zu ändern.
Für das System im Wohnzimmer ist die Variable „MemberofGroup“ leer, wenn ich normal gehört habe. Sie wird erst gesetzt, wenn das Wohnzimmer Mitglied einer Gruppe wird. Dann kommen aber die Fehlermeldungen mehrfach. Beim Auflösen der Gruppe dauert es ca 2 Minuten bis die Variable wieder geleert wird. Hier kommen keine Fehlermeldungen.

Der Fehler tritt auch auf, wenn ich eine Gruppe über zwei Player mache, die das Wohnzimmer nicht enthält.

Wie man an den Fehlern erkennt habe ich die IPSLibrary installiert.
Vielleicht lässt sich ja der Zustand abfangen?

Meinst Du es könnte helfen, einen anderen Player als Master einzusetzen, und kann man das jetzt noch ändern?

Vielen Dank und Gruß
Christian

Hallo,

Deine Beschreibung ist nicht ausreichend.
Auf welcher instanz tritt der Fehler mit dem Sleeptimer denn auf?
Da ich lediglich Play 1 und 3 habe, kann ich zum Sub und der Playbar nichts sagen.

Die große Frage ist:
Welche Instanz der 5.2 Kombo ist denn im IPS? Ich könnte mir gut vorstellen, dass der Sleeptimer nur auf einer funktioniert.

Da ich aber wie gesgt so etwas nicht habe, kann ich da auch nicht viel raten.

Einfach Lösung:
Häkchen beim „Enable Sleeptimer Control“ raus, dann wird der Status auch nicht abgefragt.

Gruß,
Thorsten

Hallo Thorsten,

im Modul eingebunden ist die Playbar. Sie ist ja im Prinzip der Master des 5.1 Systems.
Dort habe ich auch „Enable Sleeptimer Control“ aktiviert.

Ich habe den Haken jetzt mal entfernt und werde das beobachten.

Gruß
Christian

Hi Thorsten,

könntest du den Status Update Timer variabel gestalten ?
Das macht bei größeren SONOS Umgebungen leider scheinbar Probleme, da muss der Timer angehoben werden.
Die manuell abgeänderten Timer werden nämlich wieder auf 5 Sekunden bei jeder Änderung der Instanz zurückgesetzt.

Hier die Änderungen die du durchführen müsstest:

form.json
Zeile 10:

{ "name": "UpdateStatusFrequency",    "type": "NumberSpinner",     "caption": "Update Status Frq" },

module.php
Zeile 13:

$this->RegisterPropertyInteger("UpdateStatusFrequency", 5);

Zeile 259:

IPS_SetScriptTimer($statusScriptID, $this->ReadPropertyString("UpdateStatusFrequency"));

Wäre cool wenn das einfließt, dann kann ich meinen Fork wieder killen :wink:

Grüße
Daniel

Hi,

Das mit der Updatefrequenz fände ich super. Ich habe 11 Sonos Komponenten und da kommen häufig Fehler.

Mfg
Kris

Hallo,

der Grund warum ich das nicht fix eingabaut habe ist, dass Du nicht alle Stellen erwischt hast :wink:

Ist jetzt drin, allersings sind die Texte auf der Config Oberfläsche beschi*****.

„NA“ bedeuetet „Not Available“, also „wenn die box nicht verfügbar ist“.
In der Doku habe ich es auch noch nicht drin, da ich gerade kaum Zeit habe.

Gruß,
Thorsten

Hallo Thorsten, in IPS View verwenden manche User ein Mediaimage zum anzeigen des Cover. Wäre es möglich im Modul noch einen Haken zu ergänzen bei dem dann bei Bedarf ein Mediaimage in der Sonos Instanz angelegt und aktualisiert wird. So was wie hier diskutiert
Sonos URL in IPS View aktualisieren
Dann muss das Mediaimage nicht jeder selber anlegen der Dein Modul benutzt.

Ich hätte da gerne auch noch mal ein Problem :slight_smile:

Bei mir wird der Titel nicht angezeigt. Das heisst, in den meisten Fällen nicht angezeigt…sporadisch funktioniert es allerdings…

Das Logfile gibt nichts her, keine Fehlermeldung.

btw - danke für das super Modul :slight_smile:

Viele Grüße
Martin

Moin,

Was spielst Du denn da ab?
Das „NOT_IMPLEMENTED“ bei Track Duration und Position deutet darauf hin, dass es sich um einen Stram handeln könnte.

Wenn der Stram die Felder nicht füllt, kann dies schon mal passieren…

Gruß,
Thorsten

Ah ok - ja, ich streame von Deezer.

Aber wo kommt die Track Info denn her ? In Sonos sehe ich alle Informationen. Zu mal es hin und wieder ja funktioniert…

Sind die Sonos Updates, so wie heute das 7.0 gefahrlos möglich, oder besteht die Gefahr, dass damit auch die Funktionen des Moduls verändert/deaktiviert werden?

Danke Sebastian

Das ist der Grund für die Bitte das Modul so anzupassen, dass die sich ändernde URL aktualisiert wird (Cover). Auch ich streame von Deezer.

Grüße
Bruno

Gesendet von meinem HUAWEI MT7-L09 mit Tapatalk

Also bei mir läuft das Modul mit 7.0 ohne Problme.
gruß Stefan

Hallo Thorsten,

bei mir kommt es sporadisch (alle Tage mal) vor, dass eine aufgerufene SNS_* Funktion mit einer Exception zurückkommt (‚Sonos Box xxx.xxx.xxx.xxx is not available‘), obwohl die Box angeschlossen und aktiv ist.

Ursache ist, dass manchmal der Sys_Ping auf die Box fehlschlägt und damit die weitere Verarbeitung abgebrochen wird. Das passiert, obwohl der Timeout bei mir bereits auf 5000 steht.

Meine Versuche haben ergeben, dass in diesen Fällen ein direkt gestarteter zweiter Sys_Ping dagegen erfolgreich ist.:confused:

Somit habe ich bei mir lokal in der module.php eine neue Funktion eingefügt, in der ich den doppelten Aufruf durchführe:

    protected function CheckAvailibility($ip, $timeout) {
         if ($timeout && Sys_Ping($ip, $timeout) != true){
           if (Sys_Ping($ip, $timeout)!= true){
             throw new Exception('Sonos Box '.$ip.' is not available, TimeOut: '.$timeout.'ms.');
           }
         }
    }

und alle Aufrufe von

        if ($timeout && Sys_Ping($ip, $timeout) != true)
           throw new Exception("Sonos Box ".$ip." is not available");

ersetzt durch


        $this->CheckAvailibility($ip, $timeout);

Seitdem sind die Abbrüche weg.

Kennst du das Problem und wärst bereit, die Änderung zu übernehmen?

Gruß

Burkhard

Hallo Burkhard,
ich kenne das Problem bei Sonos, wenn die wie bei mir, per WLAN eingebunden ist
Wenn die BOX an der Reichweitengrenze, ist kommt es immer mal wieder, wenn die Box gute Verbindung hat, nie…
Aber deine Idee könnte auch gut sein, da Sonos ja etwas Puffer hat…

Hallo zusammen,

wie kann ich denn die „Informationen“ im Radiobetrieb von Hand auslesen?

Das mit „Sie hören“ hab ich noch nirgends gesehen. Ist das nicht implementiert oder interessierts nur niemand?

Danke für Eure Antworten im Voraus,

Hallo Wolfgang,

die Info’s stehen in nowPlaying und Radio,

Das hab ich auch schon gesehen, nur durch welche Function wird die NowPlaying befüllt? So dass ich mit die einzelnen Informationen rausziehen kann?

Hallo tomgr,

habs gefunden.

In der GetPositionInfo() stehen die Informationen in der [streamContent]

Danke und