Sonos Modul

Gibt es eine Möglichkeit an die im Splitter angelegten Radiosender/Bild-URLs zu kommen?

Ich habe eine eigene auf Vue.js basierende Visualisierung und würde gerne die zu Verfügung stehenden Radiosender mit Bild automatisiert anzeigen können.

Ansonsten muss ich dann wohl zwei Listen pflegen.

Hallo,

nun ja, die Sender sind als Property (‚RadioStations‘) abgelegt. Daher kann man sie über IPS_GetProperty auslesen:

Reicht Dir das so?

Gruß,
Thorsten

Ach, super! Mir war nicht klar, dass man auf diese Dinge auch so einfach zugreifen kann.

Reicht absolut, ich danke Dir!!

Hallo Torsten,

erstmal vielen Dank an Dich, dass Du das Sonos Modul entwickelt hast. Ich habe dies seit ein paar Tagen im Einsatz und bin sehr angetan davon.
Bei einem Punkt benötige ich Deine Hilfe. Eine Sonos ist vom Typ „ROAM“. Diese habe ich heute Morgen an das Ladegerät angeschlossen und erhalte seit dem diese Fehlermeldungen:


Kannst Du mir da einen Tipp geben, wie ich das abstellen kann?
LG

Bernd

Hallo,

da ich keine ROAM habe, kann ich so etwas leider nicht testen.

Kannst Du mir mal bitte den inhalt von
http://„IP eines ROAM“:1400/status/batterystatus schicken?

Danke,
Thorsten

Hallo,

bei meiner MOVE sieht das so aus:
image

ich sehe gerade, dass man den ROAM über Ladegerät und USB-C laden kann.
Ich hätte in allen Zuständen der Wert von „PowerSource“.

Danke,
Thorsten

Hallo Torsten,

ohne Ladegerät kommt folgende Wert zurück:
image

bei gestecktem Ladegerät:
image

Hilft Dir das weiter? Sonst bitte melden.

LG

Bernd

Hallo,

ja, tut es.
Update vom Modul ist unterwegs.

Im Beta ist es schon verfügbar. Stable ist beantragt.

Es gibt auch noch das „Kabellose Ladegerät“. Hast Du das auch? der Wert würde mich auch noch interessieren…

Gruß,
Thorsten

Hallo Torsten,

das habe ich leider auch nicht.

Vielen Dank für die schnelle Umsetzung
Bernd

Hallo zusammen,
seit dem letzten Update bekomme ich keine Radio oder Album Cover mehr angezeigt.

Dies wurde vor ein paar Monaten von cbeham schonmal angefragt.
Hat man dazu schon eine Lösung gefunden?

Modul wurde von mir schon neu angelegt, brachte aber keine Änderung.

Jemand eine Idee, was ich noch machen kann?

Vielen Dank vorab und beste Grüße
Kai

Hallo,

schick mir mal, wie Du das Radio einstellst.
Über Symcon? Dann bitte auch welche URL Du verwendest. Oder gehst Du über die App?

Ich habe kürzlich das etwas „verbessert“, zumindest so dass bei mir alles geht…
Leider kann man da die Sendereinstellungen auf zu viele unterschiedliche Arten machen.

Gruß,
Thorsten

Hallo Thorsten,
die Radiosender füge ich über IPSymcon in der Splitter Instanz hinzu.


Anbei eine Beispiel URL von 1 Live:
x-rincon-mp3radio://wdr-1live-live.icecast.wdr.de/wdr/1live/live/mp3/128/stream.mp3

Die Senderlogos liegen dann zum Teil auf meiner Synology… Hatte das vor Jahren mal so eingerichtet.

Vielen Dank vorab.

Beste Grüße
Kai

Hallo,

jepp, kaputt verbessert.
Ich konnte es nachstellen, und habe es in der Beta Gefixt.
Magst Du mal schauen?

Gruß,
Thorsten

Perfekt :slight_smile:
Senderlogos werden wieder angezeigt.

Dank Dir für den schnellen fix!

Beste Grüße
Kai

Hallo Thorsten,

ich bekomme gelegentlich den Fehler:
Error: Uncaught Exception: Error during Soap Call: UPnPError s:Client 402 (UNKNOWN) in /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php:801
#0 /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php(558): SonosAccess->processSoapCall(’/MediaRenderer/…’, ‚urn:schemas-upn…‘, ‚SetAVTransportU…‘, Array)
#1 /var/lib/symcon/modules/.store/de.kugelberg.sonos/
SonosPlayer/module.php(1425): SonosAccess->SetAVTransportURI(‚x-sonos-vli:RIN…‘, ’

Meistens wenn Sonos eine Zeit lang nichts abgespielt hat. Der Coordinator ist ein Sonos Five, der dauerhaft am Strom hängt.

Hast du eine Idee, was die Ursache sein könnte?

Hello!
Bekomme seit heute alle 6 Sekunden die Fehlermeldung - bitte um Hilfe!

30.01.2022, 18:11:49 | TimerPool | Schlafzimmer (Sonos Update Status):
Fatal error: Uncaught Exception: Error during Soap Call: UPnPError s:Client 803 (UNKNOWN) in C:\ProgramData\Symcon\modules.store\de.kugelberg.sonos\libs\sonosAccess.php:801
Stack trace:
#0 C:\ProgramData\Symcon\modules.store\de.kugelberg.sonos\libs\sonosAccess.php(231): SonosAccess->processSoapCall(’/MediaRenderer/…’, ‚urn:schemas-upn…‘, ‚GetOutputFixed‘, Array)
#1 C:\ProgramData\Symcon\modules.store\de.kugelberg.sonos\SonosPlayer\module.php(2226): SonosAccess->GetOutputFixed()
#2 C:\ProgramData\Symcon\scripts__generated.inc.php(2867): SonosPlayer->updateStatus()
#3 C:\Windows\System32-(1): SNS_updateStatus(17642)
#4 {main}
thrown in C:\ProgramData\Symcon\modules.store\de.kugelberg.sonos\libs\sonosAccess.php on line 801

IPS 6.0
Sonos Modul 2.3 (?)
2 IKEA einer davon „Schlafzimmer“ (siehe oben)
1 Playbar (LAN)
Heute auf allen Lautsprechern gespielt, keine Probleme, Letzte Version Sonos installiert.
Kein Update bei IPS Modulen anstehend

LG Alexander

das ist seltsam.
Also: Es gibt ein paar boxen, bei denen man die Lautstärke nicht ändern kann, wenn sie z.B: ein SPDIF eingang gesetzt haben.
Dann gibt es eine Exception, wenn man versucht die Lautstärke anzupassen.
Um genau das zu verhindern wird im UpdateStatus ganz am Anfang dieses Attribut der Box abgefragt:

if ($sonos->GetOutputFixed()) {
    if ($this->ReadAttributeBoolean('OutputFixed') == false) {
        $this->WriteAttributeBoolean('OutputFixed', true);
        $this->DisableAction('Volume');
    }
} else {
    if ($this->ReadAttributeBoolean('OutputFixed') == true) {
        $this->WriteAttributeBoolean('OutputFixed', false);
        $this->EnableAction('Volume');
    }
}

Und genau an dieser Stelle kommt jetzt die Exception von Sonos. Scheinbar hat Deine Box ein Problem damit diese Information zurückzugeben.

Ich habe auch IKEA Boxen, und die machen das ohne zu mucken.
Hat sich da etwas an Deiner Box geändert? Ist sie evtl. jetzt teil eines Stereo Paares?

Gruß,
Thorsten

Nein nichts geändert - steht wie die gleichzeitig gekaufte andere IKEA Box alone, ohne Stereo etc.

Habe vom Strom genommen, neu angeschlossen, Musik gespielt… keine Änderung der Fehler

Hallo,

letztes Jahr hatte hier schon mal jemand ein ähnliches Problem: Sonos Modul - #1650 von Kugelberg

mit diesem Script (IP anpassen nicht vergessen!) bekommst Du eine Liste all Deiner Boxen:

<?

if(file_exists('../modules/SymconSonos/Sonos/sonosAccess.php')){
  include_once '../modules/SymconSonos/Sonos/sonosAccess.php';
}elseif(file_exists('../modules/Sonos/libs/sonosAccess.php')){
  include_once '../modules/Sonos/libs/sonosAccess.php';
}elseif(file_exists('../modules/.store/de.kugelberg.sonos/libs/sonosAccess.php')){
  include_once '../modules/.store/de.kugelberg.sonos/libs/sonosAccess.php';
}else{
    die('sonosAccess.php not found');
}

// enter your IP here
  $ip = '192.168.1.10';  
//

$sonos = new SonosAccess($ip);
$grouping = new SimpleXMLElement($sonos->GetZoneGroupState());
$zoneGroups = $grouping->ZoneGroups->ZoneGroup;

foreach ($zoneGroups as $zoneGroup) {
  foreach ($zoneGroup->ZoneGroupMember as $zoneGroupMember) {
    if (isset($zoneGroupMember->attributes()['Invisible'])) {
      $invisible = true;
    }else{
      $invisible = false;
    }

    if (preg_match('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', (string) $zoneGroupMember->attributes()['Location'], $ip_match)) {
      if (Sys_ping($ip_match[0], 1000)) {
        $xml = @file_get_contents((string) $zoneGroupMember->attributes()['Location']);
        if ($xml) {
          $description = new SimpleXMLElement($xml);
          $SonosDevices[(string) $zoneGroupMember->attributes()['UUID']] = [
                                    'Name'      => strval($zoneGroupMember->attributes()['ZoneName']),
                                    'Model'     => strval($description->device->displayName),
                                    'RINCON'    => strval($zoneGroupMember->attributes()['UUID']),
                                    'IPAddress' => $ip_match[0],
                                    'Invivble'  => $invisible
                                ];
        }
      }
    }
  }
}

var_dump($SonosDevices);

Kannst Du bitte mal schauen, ob die Box mit dem Fehler als „Invisible“ markiert ist?
Gerne kannst Du mir auch den Output zuschicken.
Dann würde ich den Fehler erwarten…

Gruß,
Thorsten