Sonos Modul

Hallo Thorsten

Die Sonos-Steuerung scheint bei mir gang gut zu funktionieren. Meine Probleme liegen im Bereich der TTS-Sprachausgabe.
Ich habe lediglich eine Sonos Soundbar.

  • Welche Boc ist betroffen? Soundbar

  • Ist sie Teil einer Gruppe? Nein

  • Ist die Teil eines Stereopaares oder eines 5.1 Setups? Nein

  • Was wird gerade abgespielt?: Da liegt der Punkt: Die Sprachausgabe funktioniert, wenn a.) gar nichts läuft b.) Radio läuft.
    Die Fehlermeldung erhalte ich, wenn a.) TV läuft oder b.) Plex läuft. Da bei mir eigentlich zu 90% Plex läuft würde ich mal in die Richtung suchen.

Danke Dir im voraus und stehe gerne für Fragen zur Verfügung
MIchael

Hallo,

Manchmal kommt es vor (durch Stromausfall, etc …), dass keine Musikdatei im Player voreingestellt ist.

Sonos.PNG

Wenn ich dann an meiner Play1 im Bad aufs Knöpfchen drücke passiert nichts. Ich muss dann immer eine Musikdatei/Radiosender auswählen.

Gibt es eine Möglichkeit zur Überprüfung, ob bei einem Player keine Musikdatei voreingestellt ist um dann eventuell den Favoriten-Sender vor einzustellen ohne, dass er gleich losspielt :confused:

Ich schalte meine Play1 oder Play3 über LCN oder zwave an/aus.
Autostart skript häng dann an dem Relais, und macht…
Beispiel aus meinem TS_LCN2Sonos Modul.

<?
$steuer_id = IPS_GetProperty(IPS_GetParent($_IPS["SELF"]), "Rel_id");
$SonosId = IPS_GetProperty(IPS_GetParent($_IPS["SELF"]), "Sonos_ID");
$radio=IPS_GetProperty($SonosId, "FavoriteStation");

switch ($_IPS["SENDER"])                                     // Ursache (Absender) des Triggers ermittlen
{
  case "Variable":                                       // status hat sich geändert
    $steuer = GetValueBoolean($steuer_id );
    if ($steuer)                                 // hat eingeschaltet
	{
     IPS_SetScriptTimer($_IPS["SELF"]  , 60);                  // ScriptTimer einschalten (auf 60 Sekunde setzen)
	} else {
		IPS_SetScriptTimer($_IPS["SELF"]  , 0);
	}
  break;
  case "TimerEvent":                                     // Timer hat getriggert
		SNS_SetRadio($SonosId ,$radio);
		SNS_Play($SonosId);
		IPS_SetScriptTimer($_IPS["SELF"]  , 0);
  break;

}
?>

Das mit

$radio=IPS_GetProperty($InstanceID_BAD, "FavoriteStation");
SNS_SetRadio($InstanceID_BAD ,$radio);

habe ich schon versucht. Dadurch wird der Sender aber auch gleich abgespielt und nicht nur voreingestellt :frowning:
Dadurch, dass ich im Bad direkt übers Knöpfchen an der Box einschalte, müsste ich irgendwie überwachen ob ein Musiksender voreingestellt ist.
Hätte ich dort einen Taster, der über IPS Aktionen auslöst, wäre es eh kein Problem … :slight_smile:

Hi. Wenn die Box durch einen Stromausfall oder WLAN Ausfall keine Quelle mehr hat, stelle ich automatisch unseren Standard Radiosender ein. Das ganze funktioniert wie folgt.

Überwachung der Sonos Boxen wie bei fast allen anderen Geräten (Ping Anfrage). Wenn eine Box offline war und wieder online geht, warte ich etwa 30 Sekunden, stelle dann die Lautstärke auf 0%, und anschließend die Quelle auf unseren Radiosender. Dann wird noch ein Pause gesendet und die Lautstärke wieder auf ca. 10% angepasst. Dadurch ist gerade morgens die Musik nicht zu laut und immer mit dem Radiosender vorbelegt.

Ja, mit diesen Gedanken habe ich auch schon gespielt. Dachte, dass es vielleicht einfacher geht. Quasi mit nem PreSet-Befehl.
Was ich allerdings beobachtet habe ist, dass wenn ich eine Gruppierung von Küche und Bad mache:

SNS_SetGroup($InstanceID_BAD, $InstanceID_KUE);

und diese anschließend das Bad wieder aus der Gruppe nehme:

SNS_SetGroup($InstanceID_BAD, 0);

ist ebenfalls kein Musikdatei eingestellt. Wie kann man das dann überwachen?

EDIT: … bzw. gibt es vielleicht noch andere Gründe warum „keine Musikdatei“ ausgewählt sein kann. Schön wäre ja wenn man aus einer Variable den voreingestellten „Wert“ (Radiosender, etc.) auslesen könnte. Dann wäre die Überwachung kein Problem

Hi,

ihr seid ja krativ…

Da es irgendwo hier schon mal steht, man es aber nicht mehr findet, habe ich es noch mal beschrieben:
SONOS Modul - Nützliche Scripte

Mit der Hoffnung eine Sammlung von Scripten zu bekommen, bei der ich mir noch ein paar anregungen holen kann.

Gruß,
Thorsten

Hallo,

Was ich allerdings beobachtet habe ist, dass wenn ich eine Gruppierung von Küche und Bad mache:

SNS_SetGroup($InstanceID_BAD, $InstanceID_KUE);

und diese anschließend das Bad wieder aus der Gruppe nehme:

SNS_SetGroup($InstanceID_BAD, 0);

ist ebenfalls kein Musikdatei eingestellt. Wie kann man das dann überwachen?

EDIT: … bzw. gibt es vielleicht noch andere Gründe warum „keine Musikdatei“ ausgewählt sein kann. Schön wäre ja wenn man aus einer Variable den voreingestellten „Wert“ (Radiosender, etc.) auslesen könnte. Dann wäre die Überwachung kein Problem

also jetzt ganz theoretisch könnte man sich merken, was vor dem „Zuordnen zu einer Gruppe“ eingestellt war.
Das müsste man dann in 2 Variablen schreiben (URL + Metadaten).
Wenn man dann die Box aus einer Gruppe nimmt, könnte man das aus den beiden Variablen auslesen und wieder so einstellen.
Das halte ich aber für übertrieben.

Die einfachere Lösung wäre ein ein Ereigis auf die Variable „MemberOfGroup“, wenn die den Wert „0“ annimmt.
Das bedeutet, dass sie nicht mehr Teil einer Gruppe ist.
Sollte auch beim Stromausfall funktionieren, denn der Wert wird erst upgedatet, wenn die Box wieder da ist.
Dann wird entweder in IPS die Gruppe angepasst, oder die Box automatisch wieder aufgenommen. Je nachdem wie „Force Grouping in Sonos“ gesetzt ist.

Gruß,
Thorsten

Hallo,

Dann muss ich wohl besser werden zu erkennen, ob vor der Ausgabe der Datei pausiert werden muss.
Leider habe ich keine Soundbar oder Plex.
Kannst Du mir in der Situation wo der Fehler auftritt bitte mal die Ausgabe von


 <?
include_once("../modules/SymconSonos/Sonos/sonosAccess.php");
$sonos  = new SonosAccess("<Dein Sonos Host oder IP der Soundbar>");

print "MediaInfo:
";
var_dump($sonos->GetMediaInfo());
print "
PositionInfo:
";
var_dump($sonos->GetPositionInfo());
?> 

schicken?

Mal sehen ob mich das schlauer macht.
Bitte nimm den Haken bei „HTML filtern“ raus. im „CurrentURIMetaData“ steht ein XML…

Danke,
Thorsten

Merkwürdig, mein Sonos sieht ganz anders aus und ich habe seit kurzem das Problem, das Radiostationen und Playlists nicht mehr angezeigt/aktualisiert werden.
Ich habe mich auch einige Zeit nicht mehr damit beschäftigt. Kann mir eventuell Jemand kurz auf die Sprünge helfen, was ich ändern mus damit auf dem neuestem Stand bin und alles wieder läuft

Danke! und frohes neues Jahr!

Hi Henry1970,
du nutzt nicht dieses Sonos Modul, sondern das Modul aus der IPSLibrary.

hmmm wie kann ich das Sonos Modul installieren?
kannst Du mir kurz Starthilfe geben?
Henry

Erster Link im ersten Post.
SymconSonos/README.md at master · tkugelberg/SymconSonos · GitHub
Michael

Danke, das hat funktioniert. Die Radio Logos werden nicht angezeigt, Rest funktioniert. Ich werde wohl jetzt viel lesen müssen.

Hi Thorsten,
Mit

$InstanceID_BAD = 48828 /*[Multiroom\EG\Bad\PowerSonos\SonosBad]*/;

// Set radio without playing 
$radio = "OE3";
$sonosID = $InstanceID_BAD; 
include_once("../modules/SymconSonos/Sonos/sonosAccess.php"); 
include_once("../modules/SymconSonos/Sonos/radio_stations.php"); 

$ip    = IPS_GetProperty($sonosID, "IPAddress"); 
$sonos = new SonosAccess($ip); 
$sonos->SetRadio(get_station_url($radio), $radio);  

funktioniert das Voreinstellen wunderbar! Danke :slight_smile:
Jetzt wollte ich das mit RadioSendern aus meiner TuneIn-Sammlung machen und dachte ich könnte mit der Option „Include TuneIn favorites“ meine Sender importieren.
TuneIn.PNG

Nachdem ich „Update Radio Stations“ ausgeführt hatte, waren meine Sender aber leider nicht in der Liste der „Favorite radio station“ auswählbar.
IncludeRadio.PNG

Habe ich da etwas falsch verstanden?:confused:
Ich habe danach versucht in der „radio_stations.php“ einen Sender hinzuzufügen. Leider war er nicht in der Liste der „Favorite radio station“ auswählbar.

Hallo,

anscheinend.
Keine Ahnung ob ich das schon mal erwähnt hatte?!

Bei der „Favorite radio station“ sind nur die ausgelieferten auswählbar. Leider ist das Formular da nicht flexibel genug…

Die Moduldateien würde ich aber lieber nich verändern, könnte sonst Probleme beim nächsten Update geben.

Gruß,
Thorsten

Hallo Thorsten,

ICH WÜNSCHE DIR EIN GESUNDES UND GLÜCKLIcHES NEUES JAHR !!!

Ich habe in Deiner GitHub-Anleitung folgendes gelesen:

Playlist
Diese Variable hat normalerweise keinen Wert gepflegt. Sie dient nur dazu vom WebFront aus eine Playliste anstarten zu können.

Kann ich denn sonst irgendwie einen Trigger oder eine Variable bekommen - womit ich das Auswählen(Umschalten) einer Playlist auswerten kann?

herbertf

Hallo,

Ich nutze das Modul schon eine Weile.
Da ich oft meldungen bekomme too many scripts at once. Dropping execution bekomme bin ich auf die Suche gegangen welche Scripte probleme bereiten.

Mir ist aufgefallen dass eine von den Play1 Boxen Scripte hin und wieder einen fehler machen bei _update Status und _update Grouping.
Kommt das durch eine falsch einstellung von meiner Seite?

Gruss,

Hallo,

dazu wäre es hilfreich zu wissen, welche Fehler Du so bekommst…

Danke,
Thorsten

Hallo,

ich kann mir darunter nicht so richtig was vorstellen.
Klar könnte ich im „SetPlaylist“ kurz die Variable setzen, und direkt weider initialisieren.
Denn sobald im Sonos die Playliste gesetzt wird, kann sie direkt wieder geändert werden…

Würde das helfen, wenn die Variable für ein paar Millisekunden umgesetzt würde?

Gruß,
Thorsten