Sonos Modul

Hallo,

Ich hätte die Vermutung, dass da nichts zum abspielen eingestellt ist.
Also vorher noch ein „SetRadio“ oder so…

Müsse dann in der App einen ähnlichen Fehler geben.

Gruß,
Thorsten

Hi,
ich habe das Sonosmodul auf Vers 2.0 gebracht.
Leider läuft meine lautstärkensteuerung SNS_ChangeVolumeüber meine Drehschalter nicht mehr.
Der Player spring immer wieder auf die Standartlautstärke.
Kann ich diese auschalten?

Gruß Ralph

Hallo,

an dem ChangeVolume hat sich zwischend der Beta und der nichts geändert.
Oder meinst Du von der ganz alten Version auf die aus dem Store?

Soll das bedeuten, dass der Player erst seine lautstärke ändert und dann wieder auf die Default Lautstärke geht?

Versuche das doch bitte mal über ein script, ob sich das da auch so verhält.
Ich verwende selber regelmäßig diese Funktion und eigentlich kann ich keine Fehler feststellen…

Gruß,
Thorsten

Hallo Thorsten,
ja, alle beide player springen nach kurzer Zeit wieder auf die default Lautstärke.
Das ist unabhängig, welchen Wert ich dort eintrage.
Habe daher die Version wieder deinstalliert und die alte Struktur in Betrieb daher ist das mit dem Skript schwierig.
Jedoch ist mir folgendes aufgefallen.
Das selbe Verhalten findet bei der Lautstärkenänderung über das Webfront statt.
Und auch, wenn ich über die Sonos Ap die Lautstärke ändere, stellen die Player sich wieder auf die default Lautstärke.
Das Verhalten ist unabhängig davon, ob die Player sin in einer Gruppe befinden.

Kann die default lautstärke deaktiviert werden?
Sonst ist das System nur schwer für mich zu benutzen, obwohl ich vieles besser finde als bei der alten Version.

Viele Grüße,
Ralph

Hallo,

ich habe gerade nochmal das Coding durchsucht, und die Funktion um die Default Lautstärke zu setzen wird innerhalb des Moduls nur an einer stelle verwendet. -> SetDefaultGroupVolume

Auch diese Funktion wird nicht automatisch oder regelmäßig aufgerufen.

Nein, das geht nicht, denn das ist lediglich eine Konfiguration, die sich gemerkt wird…

Du musst da irgendwo etwas haben, was diese Funktion regelmäßig aufruft.
Zudem muss sich das auch noch zwischen den Versionen unterschiedlich verhalten… Sehr komisch.

Kannst Du mal alle Scripte nach „SetDefault“ durchsuchen? Dann müsstest Du sowohl aufrufe von SetDefaultGroupVolume( ) als auch die von SetDefaultVolume( ) finden.
Ich würde auf Linux ein „grep -ril SetDefault /var/lib/symcon/scripts/“ machen.

Auf windows sollte so etwas ja auch gehen…

Gruß,
Thorsten

Ahoi!

Kann mir Jemand den Unterschied im Store zwischen Stable und Beta erklären?

Gibts überhaupt einen?

Hallo,

Nö. Derzeit ist beides gleich.

Gruß,
Thorsten

Meine ARC unterstützt den Nacht- und Dialogmodus. Leider werden die passenden Variablen nicht erstellt. Kann man das kurzfristig nachpflegen?

Hallo,

Könntest Du mir mal wie hier beschrieben den Display Name geben?
Sonos Modul - Seite 144

Ist das „ARC“?

Danke,
Thorsten

Der Name lautet „Arc“

Hallo Thorsten,

ich hoffe, du kannst mir bei einem Script helfen, welches zeitweise einen Sonos Fehler ausspuckt.
Mehrmals täglich lasse ich div. Durchsagen über Sonos laufen. Dabei kommt es vor, das die ursprüngliche Quelle (Radio, Amazon Musik, Nas) verloren geht, da diese schon seit längeren nicht mehr abgespielt wurde.

Wenn ich jetzt einfach auf Play klicke kommt eine Fehlermeldung „keine Quelle vorhanden“, was ja logisch ist.

24.10.2020, 12:44:46 | ScriptEngine         | Result for Event 59191
<br />
<b>Fatal error</b>:  Uncaught Exception: Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION) in C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php:758
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php(428): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'Play', Array)
#1 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\SonosPlayer\module.php(1249): SonosAccess->Play()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(2623): SonosPlayer->Play()
#3 C:\ProgramData\Symcon\scripts\25571.ips.php(21): SNS_Play(49456)
#4 {main}
  thrown in <b>C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php</b> on line <b>758</b><br />
Abort Processing during Fatal-Error: Uncaught Exception: Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION) in C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php:758
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php(428): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'Play', Array)
#1 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\SonosPlayer\module.php(1249): SonosAccess->Play()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(2623): SonosPlayer->Play()
#3 C:\ProgramData\Symcon\scripts\25571.ips.php(21): SNS_Play(49456)
#4 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php on Line 758

Ich habe mir eine Toggle-Var Play/Pause erstellt, mit einem Script, welches auf die Var Status oder Play/Pause reagiert.

<?php
$IDEigen    = $_IPS['SELF'];
$InstanceID = IPS_GetParent ($IDEigen);
$play 	= @IPS_GetVariableIDByName("Play/Pause", $InstanceID);
$playID 	= getvalue($play);
$status		= getvalue(@IPS_GetVariableIDByName("Status", $InstanceID));
$sonosid 	    = IPS_GetParent ($IDEigen);
$Play = IPS_GetVariableIDByName("Play/Pause", $sonosid);
$Status = IPS_GetVariableIDByName("Status", $sonosid);

//Events
$playpause		= IPS_GetEventIDByName ("Trigger Play/Pause", $IDEigen);
$Statussonos  	= IPS_GetEventIDByName ("Trigger Status", $IDEigen);

//$event = $Statussonos;
$event = $_IPS['EVENT'];

switch ($event) {
    case $playpause:       	
		if ($playID == 1) {
			SNS_Play($InstanceID);
		}else{
			SNS_Pause($InstanceID);
		}
       break;

    case $Statussonos:       	
		if ($status == 1) {
			setvalue($play, true);
		}else{
			setvalue($play, false);
		}
       break;

}

Wie kann ich im Script abfragen, ob eine Quelle vorhanden ist und die Fehlermeldung zu umgehen?
Nach dem Motto: Prüfe ob Quelle vorhanden. Wenn keine Quelle vorhanden, dann SNS_SetRadio…

VG Alex

Hallo,

seit ein paar Tagen bekomme ich immer diese Fehlermeldung:

24.10.2020, 19:30:23 | PHP                  | Error: Warning: SoapClient::__doRequest(): connect() failed: Verbindungsaufbau abgelehnt
   Error in Script /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php on Line 752
  134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
      in __doRequest
  752 in modules/.store/de.kugelberg.sonos/libs/sonosAccess.php (call __soapCall)
  371 in modules/.store/de.kugelberg.sonos/libs/sonosAccess.php (call processSoapCall)
  2138 in modules/.store/de.kugelberg.sonos/SonosPlayer/module.php (call GetVolume)
  1651 in __generated.inc.php (call updateStatus)
    1 in /- (call SNS_updateStatus)

woran liegt das und was kann ich dagegen tun?

Danke und Gruß
Stephan

Hallo,

ich habe gerade hinzugefügt, dass man für „Arc“ auch den NightMode einstellen kann.
Im Beta sollte es schon da sein, Stable habe ich eingereicht.

Gruß,
Thorsten

Update 13:45: Stable ist auch genehmigt.

Hallo,

man kann zwar abfragen, welche quelle gerade eingestellt ist, aber das ist etwas komplizierter. Vor allem die Interpretation des Ganzen.
Dazu müsstest Du eine Instanz der SonosAccess Klasse erstellen und da dann per GetMediaInfo() die Daten holen…

Ich würde eher einen try Block reinpacken:


try {
  SNS_Play($InstanceID);
} catch (Exception $e) {
  if ($e->getMessage() == 'Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION)') {
    // INVALID_TRANSITION happens e.g. when still member of a group or no target is set
    SNS_SetRadio($InstanceID, 'SWR3');
    SNS_Play($InstanceID);
  }else{
    throw $e;
  }
}

Gruß,
Thorsten

Hallo,

Das bedeutet, dass der SOAP client die Box nicht erreicht.
Verwendest Du die IP Adresse? Wenn ja, hat sich die vielleicht geändert?

Gruß,
Thorsten

Hallo Thorsten,

danke für deinen Tipp.

Das bedeutet, dass der SOAP client die Box nicht erreicht.
Verwendest Du die IP Adresse? Wenn ja, hat sich die vielleicht geändert?

Es läuft wieder alles.

Grüße

Stephan

Hallo

Hat jemand eine Idee warum ich seit neuestem immer wieder diesen Fehler bekomme ?

IPS-Err-PHP  2020-11-03 13:05:35.583  Notice: Trying to access array offset on value of type int
   Error in Script /var/lib/symcon/modules/SymconSonos/Sonos/module.php on Line 660
  134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  660 in modules/SymconSonos/Sonos/module.php (call IPSLogger_PhpErrorHandler)
  9843 in __generated.inc.php (call PlayFilesGrouping)
    9 in 22268.ips.php (call SNS_PlayFilesGrouping)

Gruss,

Hi,

Du siehst mich verwirrt.
„/var/lib/symcon/modules/SymconSonos/Sonos/module.php“ deutet an, dass Du noch die alte Version von dem Modul einsetzt. Kann das sein?
Da hat sich aber seit einer Ewigkeit (16.10.2019) nichts geändert.
Es sieht so aus, als wenn Du in dem Script 22268 ein SNS_PlayFilesGrouping aufrufst, wo für irgendeine Instanz
volume => „“ gesetzt ist.
Kann das sein?
Wenn nicht, poste doch mal den Aufruf.

Danke,
Thorsten

Hallo Thorsten,

Du hast absolut recht dass es sich noch um die alte version handelt, mir war nicht klar dass diese nicht geupdated wird ausserdem da alles funktionierte war es ok für mich.
Ich werde als erstes dann mal updaten und werde mich dann melden wenn das problem weiterhin auftritt.

Du hast auch recht mit deiner zweiten vermutung: Hier mal das beispiel des Aufrufs


<?


SNS_PlayFilesGrouping(58867, json_encode([58867 => ['volume' => 30],  
                              45123 => ['volume' => 30],  
                                       54105 => ['volume' => 30], 
                             ]),  
                             json_encode([ POLLY_saveMP3(10936, "Beispiel Text" )]), 50); 
?>

Vielen Dank
Gruss,

Hallo,

Habe jetzt alles geupdated und die Object ID in den scripten geändert jetzt ist mir aufgefallen dass ich diese Meldungen bekomme :



11/05/2020, 12:33:34 PM | FlowHandler          | Could not forward data to instance #18835: <br />
<b>Fatal error</b>:  Uncaught Exception: Error during Soap Call: UPnPError s:Client 402 (UNKNOWN) in /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php:758
Stack trace:
#0 /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php(515): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'SetAVTransportU...', Array)
#1 /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosPlayer/module.php(554): SonosAccess->SetAVTransportURI('x-rincon:RINCON...')
#2 /-(3): SonosPlayer->ReceiveData('{"DataID":"{36E...')
#3 {main}
  thrown in <b>/var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php</b> on line <b>758</b><br />
Abort Processing during Fatal-Error: Uncaught Exception: Error during Soap Call: UPnPError s:Client 402 (UNKNOWN) in /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php:758
Stack trace:
#0 /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php(515): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'SetAVTransportU...', Array)
#1 /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosPlayer/module.php(554): SonosAccess->SetAVTransportURI('x-rincon:RINCON...')
#2 /-(3): SonosPlayer->ReceiveData('{"DataID":"{36E...')
#3 {main}
  thrown
   Error in Script /var/lib/symcon/modules/.store/de.kugelberg.sonos/libs/sonosAccess.php on Line 758


ich hab wohl noch irgendwas vergessen…

Gruss,


update 06/11
Das Problem ist gelöst es lag an dem Aufruf habe diesen verändert und jetzt tauchen die Meldungen nicht mehr auf

Gruss,