Sonos Modul

Das wäre richtig super !!! Schön wäre auch wenn es wenigstens ein paar ms sind, damit ich in Ruhe den Wert wegkopieren kann ;-)))

Ciao
herbertf

Hallo,

ich habe es leicht anders gelöst, aber die doppelte Überprüfung ist drin (Version 1.4.8).

Gruß,
Thorsten

Hi,

leider ist das soch nicht so einfach, da es sich bei Playlist um eine Integer Variable handelt…
Kannst Du mal kurz beschreiben was Du genau erreichen willst?

Evtl. gibt es ja eine andere Lösung.

Danke,
Thorsten

Hi Thorsten,

ich möchte einfach wenn ich (bzw. jemand anderes) am Tablet steht und eine Playlist auswählt, diese dann auch angezeigt wird (als Art Bestätigung). In der Bedienlogik analog zu den Radiostation, da tippe ich ja auch auf xyz und sehe xyz als ausgewählt.

Bei den Playlists habe ich derzeit null Feedback was ich (als letztes) ausgewählt habe. Ob nun integer oder string ist mir eigentlich „Rille“ - anderen Usern wäre sicher der Name der Playlist (wie er ja im Variablenprofil steht) die liebste Variante.

Beste Grüße

Herbertf

Hallo,

ich habe es in der Version 1.4.9 jetzt, mal so gemacht, dass die Variable Playlist für eine Sekunde auf den selektierten Wert gesetzt wird.
Das hat zur Folge, dass im WebFront der Knopf der Playlist eine Sekunde lang hinterlegt ist…
Dann dauert zwar die Ausführung der Action eine Sekunde länger als nötig, aber ich denke das ist vertretbar.

OK so?

Die Variable länger zu setzen geht leider nicht, da man dann ja über die App oder was auch immer die Playlist direkt verändern kann…
Außerdem hätte ich keinen Trigger wenn etwas anderes ausgewählt wird.

Gruß,
Thorsten

Hallo zusammen,

ich würde gerne eine inkompatible Änderung machen.

Derzeit ist es so, dass die Wiedergabe automatisch startet, wenn man die Funktionen „SetAnalogInput“, „SetPlaylist“, „SetRadio“ oder „SetSpdifInput“ ausführt.
Im Detail bedeutet dies, dass nach dem setzen der Audioquelle implizit Play() innerhalb der Funktion gerufen wird.

Ich würde dies gerne entfernen.
In der Action (also beim drücken am Webfront) würde ich dies natürlich weierhin machen!

Nachteil:

  • in Scripten müsste ein SNS_Play() hinzugefügt werden, wo eine dieser Funktionen verwendet wird:

[ul]
[li]SNS_SetAnalogInput( );
[/li][li]SNS_SetPlaylist( );
[/li][li]SNS_SetRadio( );
[/li][li]SNS_SetRadioFavorite( );
[/li][li]SNS_SetSpdifInput( );
[/li][/ul]

Vorteil:

  • Man könnte viel einfacher die Audioquelle auf Boxen vorbelegen, die man z.B. gerade aus einer Gruppe genommen hat, oder nachdem der Strom mal weg war…
  • Saubere Trennung der Funktionen

Kennt irgendwer einen guten Grund warum ich diese Änderung nicht machen sollte?

Gruß,
Thorsten

Besten Dank!

Der einzige Grund wäre meiner Ansicht nach die Inkompatibilität. Aber der Änderungsaufwand hält sich ja in Grenzen:)

Ich setze beispielsweise morgens den Radiowecker:

SNS_SetRadio($idSNS, $FavoriteStation);
SNS_SetVolume($idSNS, 0);
SNS_SetMute($idSNS, false);
$DefaultVolume = IPS_GetProperty($idSNS, 'DefaultVolume');
SNS_RampToVolume($idSNS, 'SLEEP_TIMER_RAMP_TYPE', $DefaultVolume );

Das müsste ich ändern in:

SNS_SetRadio($idSNS, $FavoriteStation);
SNS_SetVolume($idSNS, 0);
SNS_Play($idSNS);
SNS_SetMute($idSNS, false);
$DefaultVolume = IPS_GetProperty($idSNS, 'DefaultVolume');
SNS_RampToVolume($idSNS, 'SLEEP_TIMER_RAMP_TYPE', $DefaultVolume );

Korrekt?

Gruß

Burkhard

jupp.
Allerdings hätte die Änderung sogar den Vorteil für Dich, dass zwischen „SNS_SetRadio($idSNS, $FavoriteStation);“ und „SNS_SetVolume($idSNS, 0);“ das Radio nicht in voller Lautstärke losplärrt.
Aber ich nehme mal an, Du mutest die Box am Abend (oder irgendwann vorher), daher ist es wohl nicht aufgefallen…

Ich warte mal noch bis morgen um die Änderung zu machen.

Gruß,
Thorsten

Nein, finde die Idee gut.

Ich schalte SONOS auch komplett aus, und habe dann beim einschalten Skript am laufen, die alles setzen, so wie hier schon beschrieben.
Warum schalte ich aus ? Der Standbyverbrauch der Sonos ist doch sehr hoch (per zwave Stexkdose 5-7W ob Muite oder Play mit 10-15% Lautstärke.
Daher habe ich noch ein LCN-UP Modul unters Bett geworfen, damit die Play1 im Schlafzimmer Wecker macht.

besten dank !!!

Hi,

Ich fände die Änderung sogar super da es logischer ist und ich - wie du schreibst - vorbelegen kann.

Mfg
Kris

Hi Thorsten,
Danke, dass du den Gedanken aufgegriffen hast. Finde ich eine Tolle Änderung und bin natürlich dafür :slight_smile:

Hallo,

dann habe ich gerade die Version 1.5.0 hochgeladen.

  1. Play erfolgt nicht mehr automatisch --> muss in scripten hinzugefügt werden.
  2. bei Play Files wird die Exception „ERROR_AV_UPNP_AVT_INVALID_TRANSITION“ ignoriert, wenn vor der Wiedergabe Pausiert werden soll. Sollte bei Plex und SPDIF helfen.

Gruß,
Thorsten

Danke, danke, danke: Plex problem ist behoben. Jetzt kann der Spass endlich beginnen.

Michael

Hallo Zusammen,

ich habel mal ein update für das Sonos mudul gemacht. Jetzt habe ich aber ein Problem.
Nach dem Update funktioniert folgender Befehl nicht mehr.

			 SNS_PlayFilesGrouping($InstranceID_Noah , array( $InstranceID_Lucas => array( "volume" => $volumeChange),
			 												  $InstranceID_Luisa => array( "volume" => $volumeChange),
															  $InstranceID_BAD => array( "volume" => $volumeChange)
															), array($files), $volumeChange);		

Ich bekomme jetzt immer eine Fehlermeldung


Fatal error:  Uncaught exception 'Exception' with message 'Error during Soap Call: UPnPError s:Client 501 (UNKNOWN)' in C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php:556
Stack trace:
#0 C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php(374): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'SetAVTransportU...', Array)
#1 C:\IP-Symcon\modules\SymconSonos\Sonos\module.php(745): SonosAccess->SetAVTransportURI('x-rincon:RINCON...')
#2 C:\IP-Symcon\scripts\__generated.inc.php(308): Sonos->SetGroup(44154)
#3 C:\IP-Symcon\modules\SymconSonos\Sonos\module.php(536): SNS_SetGroup(15713, 44154)
#4 C:\IP-Symcon\scripts\__generated.inc.php(378): Sonos->PlayFilesGrouping(Array, Array, 35)
#5 C:\IP-Symcon\scripts\46551.ips.php(84): SNS_PlayFilesGrouping(44154, Array, Array, 35)
#6 {main}
  thrown in C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php on line 556
Abort Processing during Fatal-Error: Uncaught exception 'Exception' with message 'Error during Soap Call: UPnPError s:Client 501 (UNKNOWN)' in C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php:556

Weis jemand was da passiert ist ?

Gruß Stephan

Hallo
So eine Fehlermeldung hatte ich heute auch schon.
Hab fuer die Sprachausgabe folgendes

SNS_PlayFiles($id,$htmlfiles,$volume)

Wenn die $id nicht der Koordinator ist kam bei mir der Fehler.

Hallo,

wissen ist relativ.

Der Fehler tritt beim Gruppieren vor der „Sprachausgabe“ auf.
Konkret, als versucht wurde die Instanz 15713 der Gruppe 44154 hinzuzufügen.

Ich könnte mir aber folgendes vorstellen:
15713 ist bereits Koordinator einer Gruppe. Und wenn man versucht eine Gruppe einer Gruppe hinzuzufügen, knallt es.

Dieses Scenario habe ich noch nicht bedacht.

Wenn Du mir den Verdacht bestätigst, sollte es reichen die Reihenfolge im ersten Array (also dem mit den Boxen) anzupassen, dass zuerst die Member einer Gruppe kommen, dann die Gruppenkoordinatoren.

Wenn das so funktioniert könnte ich das Array auch versuchen in der Funktion zu sortieren…

Gruß,
Thorsten

PS: @ 1007 --> Dein Problem muss ein anderes gewesen sein, da bei SNS_PlayFiles( ) kein SNS_SetGroup aufgerufen wird.
Wenn man SNS_PlayFiles( ) auf eine Box innerhalb einer Gruppe aufruft, sollte die Box für die Ansage aus der Gruppe genommen und danach wieder hinzugefügt werden…

Hi Thorsten,

Die Idee war nicht schlecht nur leider war es das nicht. Die Player laufen alle als Singelplayer und sind nicht in einer Gruppe.

Habe dann ein wenig rumgespielt und musste feststellen das der Fehler immer dann kommt wenn ich einen Sonos Connect in eine Gruppe einzubinden
.
Wenn ich aber den Player mit SNS_SetGroup Gruppiere funktioniert es.
Habe schon die Vermutung dass es mit der Änderung der Lautstärke beim Gruppieren zu tun hat. Obwohl ich die Lautstärkeänderung mit 0 deklariert habe. Aber der Connect Player hat eine Feste Lautstärke weil die Lautstärke über den Resiver gesteuert wird.

Kann das auch eine Möglichkeit sein ?

Gruß Stephan

Hallo,

SNS_SetGroup(15713, 44154);

Einzel ausgeführt funktioniert?!

Welche ID ist denn 15713? $InstranceID_Lucas, $InstranceID_Luisa oder $InstranceID_BAD?

ich würde „eher nicht“ sagen. Die Exception sagt ganz klar, dass es bei

SNS_SetGroup(15713, 44154);

auftritt.

Gruß,
Thorsten