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
Manchmal kommt es vor (durch Stromausfall, etc …), dass keine Musikdatei im Player voreingestellt ist.
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
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;
}
?>
habe ich schon versucht. Dadurch wird der Sender aber auch gleich abgespielt und nicht nur voreingestellt
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 …
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
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.
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…
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
$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
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.
Nachdem ich „Update Radio Stations“ ausgeführt hatte, waren meine Sender aber leider nicht in der Liste der „Favorite radio station“ auswählbar.
Habe ich da etwas falsch verstanden?
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.
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?
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?