Sonos Modul

Moin,

bei SNS_DelegateGroupCoordinationTo kommt bei mir

Warning:  
Fatal error:  Uncaught Exception: unbekannter type in ForwardData in /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosSplitter/module.php:198
Stack trace:
#0 /-(3): SonosSplitter->ForwardData('{"DataID":"{731...')
#1 {main}
  thrown in /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosSplitter/module.php on line 198
 in /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosPlayer/module.php on line 855

Grüße,
Christoph

Hi,

Ich habe jetzt eingebaut, dass das volume nicht gesetzt wird, wenn es auf 100 gesetzt werden soll.
Erstmal verhindert das den Fehler.

Ich hätte aber gerne die Möglichkeit auf Features reagieren zu können (z.B. NightMode, was nur von ein paar Boxen unterstützt wird).
Ich habe da schon eine Idee, das ist aber etwas größeres.

Huch, da hatte ich doch echt im Splitter vergessen es an den Player weiterzuleiten.
Ist jetzt erledigt.
Aber schon zu sehen, dass es auch jemand verwendet :wink:

Zusätzlich habe ich noch in alle Funktionen Debug Texte eingebaut. Wer also wissen will, was passiert bekommt dies jetzt auch raus.

Gruß,
Thorsten

Hallo,

ganz vergessen…

Nun ja, meine Frau würde eher meckern, wenn sie die Hälfte von dem Lied verpasst, weil nur gemutet und nicht pausiert wurde…
Dieses Argument überzeugt mich nicht.

Dieses schon.

Es gibt jetzt die Funktion SNS_SetMuteGroup(int $InstanceID, bool $mute), die auf dem Gruppenkoordinator ausgeführt werden muss, und dann alle zugehörigen Member mutet oder unmutet.

Gruß,
Thorsten

Hi Thorsten,

die Funktion finde ich Klasse :wink: Kann ich denn irgendwie ermitteln (Status?) ob gerade Mute aktiv ist (ich habe nix gesehen :banghead:)

Ciao
HerbertF

Hallo,

wenn man „MuteControl“ angeschaltet hat, wird dafür eine Variable angelegt, die auch vom UpdateStatus upgedatet wird.
Aber das steht auch in der Doku (hoffe ich).

Gruß,
Thorsten

Hallo Thorsten,

vielen Dank für den Versuch die Fehlermeldung auszublenden.

Ich habe jetzt eingebaut, dass das volume nicht gesetzt wird, wenn es auf 100 gesetzt werden soll.
Erstmal verhindert das den Fehler.

Nur leider ist die Fehlermeldung immer noch da.
Wäre es eine Möglichkeit in der Configinstance des Players eine Option einzubringen das man bei diesem Player keine Lautstärke ändern kann

Gruß Stephan

Hallo,

echt?! Das ist seltsam.
Kannst Du mit bitte mal die Debug Meldungen von der Connect Instanz zukommen lassen?

Danke,
Thorsten

Guten Abend!

ich bekomme seit dem letzten Update über den Module Store beim Befehl

SNS_SetPlaylist

den Error:

Warning:  Cannot auto-convert value for parameter Data in C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\SonosPlayer\module.php on line 1619

Ist der Fehler schon bekannt, bzw. kann ich mit Details zur Lösungsfindung helfen?

Schönes Wochenende euch,

Peter

Hallo,

ne, war nicht bekannt. Ich hatte beim schreiben der Debug Meldungen was nicht ganz richtig gemacht.
Ist jetzt weg.

Danke,
Thorsten

Vielen Dank. Ich werde die Woche updaten und dir Bescheid geben ob die Funktion wieder funktioniert. Danke für die schnelle Hilfe [emoji1360]

Beim Gruppenmaster steht „Teil der Gruppe“ auf „Keine“. Ich habe keine Möglichkeit gefunden, herauszufinden, ob ein Player aktuell ein Gruppenmaster ist, oder alleine für sich hinspielt.

Besteht die Möglichkeit, bei „Teil der Gruppe“ ggf. die eigene ID der Instanz in die Variable zu schreiben, damit genau das erkennen kann?

Hallo,

das ist genau so.
Da steht die Instanz ID des Gruppenkoordimators drin. Ich lege aber ein Profil an („SONOS.Groups“), in dem ich für die Instanz ID den Namen der Instanz als Text hinterlege.
zusätzlich für die Instanz „0“ den Namen „keine“.
–> Wenn da also 0 drin steht, siehst Du in der Konsole oder dem WebFront „keine“. Und dann ist die Box ein Koordinator.

Gruß,
Thorsten

Hallo zusammen,

ich würde gerne erkennen, um welche Box es sich handelt und dann Features ein, bzw ausschalten.
Beispiele hierfür sind:

  • NightMode (nur von Playbar und Playbase unterstützt)
  • Lautstarke ändern (nicht von Connect unterstützt)

Dazu brauche ich aber eine Liste, welche Boxen es so gibt.
Könnt ihr mal mal folgendes Script ausführen, und sie Ausgabe hier posten? Natürlich nur, wenn sie einen neuen Eintrag enthält.


$SSDPInstance = IPS_GetInstanceListByModuleID('{FFFFA648-B296-E785-96ED-065F7CEE6F29}')[0];

$discoveredDevices = YC_SearchDevices($SSDPInstance, 'urn:schemas-upnp-org:device:ZonePlayer:1');
        
print  "|[b]modelNumber[/b]|[b]displayName[/b]|[b]seriesid[/b]|
|---|---|---|
" ;
        
foreach ($discoveredDevices as $discoveredDevice) {
  if ($discoveredDevice['Location'] == 'http://' . $discoveredDevice['IPv4'] . ':1400/xml/device_description.xml') {
    if (Sys_ping($discoveredDevice['IPv4'], 1000)) {
      $description = new SimpleXMLElement('http://' . $discoveredDevice['IPv4'] . ':1400/xml/device_description.xml', 0, true);
      print  "|".$description->device->modelNumber."|". $description->device->displayName ."|". $description->device->seriesid ."|
" ;
    }
  }
}

print  "

" ;

Hier die aktuelle Sammlung der verschiedenen Boxen:

modelNumber displayName seriesid
BR200 Boost A100
S1 Play:1 A101
S3 Play:3 A100
S5 Play:5 P100
S9 Playbar A100
S11 Playbase A100
S12 Play:1 A200
S14 Beam A100
S20 SYMFONISK A100
S21 SYMFONISK A100
Sub Sub A100
ZB100 Bridge X999
ZP90 Connect S100
ZP90 Connect C100
ZP120 Connect:Amp P100

Danke,
Thorsten

modelNumber displayName seriesid
S5 Play:5 P100
S3 Play:3 A100
S5 Play:5 P100
S1 Play:1 A101

Es handelt sich um Play:5 der ersten Generation - evtl. ist das wichtig zu wissen.

Ich versuche, es anders zu beschreiben. Wenn eine Box ein Koordinator ist und andere Player in der gleichen Gruppe sind, dann steht dort beim Koordinator „keine“. Wenn die Box aber völlig Standalone Musik spielt, dann steht dort auch „keine“

Hintergrund: Ich möchte in Räumen, in denen keiner ist, die Musikwiedergabe stoppen und den Player vom Strom nehmen. Im ersten Fall wäre das blöd, wenn ich den Playern in der Gruppe den Koordinator wegreiße. Im zweiten Fall, kein Problem. Daher würde ich gerne wissen, ob die Box ein Koordinator ist bzw. ob da noch weitere Instanzen dranhängen.

Ich kann natürlich auch alle weiteren Player abfragen, ob der Player, den ich ausschalten möchte, der Koordinator ist.

modelNumber displayName seriesid
S21 SYMFONISK A100
S1 Play:1 A101
S12 Play:1 A200
ZB100 Bridge X999
S3 Play:3 A100
S21 SYMFONISK A100
S21 SYMFONISK A100
modelNumber displayName seriesid
S5 Play:5 P100
Sub Sub A100

Und

modelNumber displayName seriesid
S3 Play:3 A100
S11 Playbase A100
modelNumber displayName seriesid
BR200 Boost A100
S12 Play:1 A200
S1 Play:1 A101
S12 Play:1 A200
S1 Play:1 A101
S12 Play:1 A200

sonos.jpg

Viele Grüße aus dem Unterallgäu
Harry

Meine Geräte:

modelNumber displayName seriesid
S5 Play:5 P100
S5 Play:5 P100
ZP90 Connect S100
S3 Play:3 A100
S1 Play:1 A101
ZP120 Connect:Amp P100