Sonos Modul

Moin!

Kannst du bitte bei Gelegenheit noch die Radiostation „planet radio“ mit einbauen? :slight_smile:

http://streams.planetradio.de/planetradio/mp3/hqlivestream.m3u

Danke und Grüße,
Chris

Hallo zusammen,

ich habe gerade ein update hochgeladen: Version 1.4.0

Unter anderem mit dem automatischen gruppieren vor PlayFiles und RampToVolume.

Ach ja, und dem von dansch vorgeschlagenen Detail HTML.

Schaut es euch mal an,

Gruß,
Thorsten

Hallo Thorsten,

besten Dank für SNS_RampToVolume. Es funktioniert perfekt.

Hier ein Beispiel wie ich es als Radiowecker nutze:

$FavoriteStation = IPS_GetProperty($idSNS, 'FavoriteStation');
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 );

Ein Punkt ist mir noch aufgefallen: in der Befehlskontextliste im Editor fehlt SNS_RampToVolume noch.:slight_smile:

Gruß

Burkhard

Moin Burkhard!

Du meinst unter „rechte Maustaste > Befehl testen“? Hast du IPS neu gestartet? Dann sollte es kommen :slight_smile: Da stehen automatisch alle public Funktionen eines Moduls (nach einem IPS-Neustart).

@Thorsten:
Das hier:

public function RampToVolume($rampType,$volume)

Müsste in das hier geändert werden, damit man da unter „Befehl testen“ Werte eingeben kann:

public function RampToVolume(string $rampType, integer $volume)

Müsste auch bei anderen Funktionen in der module.php noch geändert werden. Hab ich auch nur durch Zufall mitbekommen, dass man die „Formate“ vor die Variablen schreiben muss und erst dann funktionieren die richtig unter „Befehle testen“.

Grüße,
Chris

Ich meinte eigentlich die „Verfügbaren Funktionen“, die mit CTRL+Leertaste angezeigt werden. :slight_smile: Da SNS_PlayFilesGrouping() bereits angezeigt wurde, dachte ich, dass beim Aktualisieren des Moduls auch die Liste aktualisiert wird. Wird aber wohl nicht und SNS_PlayFilesGrouping war wohl schon früher da.

Gruß

Burkhard

Hallo,

nö, kam im gleichen Update.
Ich habe auch noch nicht ganz verstanden, wann da was upgedated wird…

Gruß,
Thorsten

Vielen Vielen Dank!

EDIT: Kann es sein das Sonos den RampToVolume Stats speichert?
Hatte gerade mal damit in einem Skript rum gespielt. Wird bei mir nur auf den Koordinator angewendet in einer Gruppe. Nicht auf die Memeber. Habe dann die Funktion raus gelöscht, war „Alarm_Ramp“. Jetzt wird jedes mal wenn ich das Skript ausführe, die Lautstärke Stück für Stück runter gefahren. Aber immer nur beim Aufruf des Skripts!

Skript:

<?
SNS_PlayFilesGrouping(54533 /*[Sonos\Schlafzimmer]*/, array (27869 => array ("volume" => 30),
																				 29675 => array ("volume" => 30),
																			    50971 => array ("volume" => 30)), Array(IVNTTS_saveMP3(57700 /*[Sonos\Ivona]*/,"Radio wird gestartet")), 30);

SNS_SetGroup(50971 /*[Sonos\Bad]*/, 54533);
SNS_SetGroup(27869 /*[Sonos\Wohnzimmer]*/, 54533);
SNS_SetGroup(29675 /*[Sonos\Küche]*/, 54533);

SNS_SetRadioFavorite(54533 /*[Sonos\Schlafzimmer]*/);
SNS_SetGroupVolume(54533 /*[Sonos\Schlafzimmer]*/, 20);
?>

Editor Fenster mal geschlossen und neu das Script geöffnet ?
Weil dann tauchen neue Befehle eigentlich auf.
Und ein Neustart braucht es nie, wenn man über das Modul-Control ein Modul updated.
Michael

Hab ich gemacht. Immer noch. Ich versuche mal den Neustart

Da haben sich die Posts überschnitten. Ich meinte Burkhard :wink:
Michael

keine Ahung, hätte ich nicht festgestellt…

Also dieses Skript macht keinen Sinn…
Zumindest nicht in meiner Denkweise :rolleyes:

SNS_PlayFilesGrouping ist recht inperformant, da es alle mitgegebenen Instanzen einzeln abturnt, die Einstellungen speichert, pausiert, zu ein Gruppe zusammensetzt, die Ansage macht, und dann alle Einstellungen wieder herstellt.

Weiterhin könntest Du die Lautstärke der einzelnen Boxen auf den default setzen, dass ist es auch super aufeinander abgestimmt. (zumindest wenn Du es richtig in den instazen konfigurierst).

IVONA ruft jedes Mal ins Internetz. Wenn es immer der gleiche Text ist, würde ich ihn erzeugen, das MP3 irgendwo ablegen und dann immer nur die Datei angeben.

Wenn Du doch eh die Gruppen bildest, warum machst Du das dann nicht so:

<?
SNS_SetGroup(50971 /*[Sonos\Bad]*/, 54533);
SNS_SetGroup(27869 /*[Sonos\Wohnzimmer]*/, 54533);
SNS_SetGroup(29675 /*[Sonos\Küche]*/, 54533);

SetDefaultGroupVolume(54533 /*[Sonos\Schlafzimmer]*/);

SNS_PlayFiles(54533 /*[Sonos\Schlafzimmer]*/,  Array(IVNTTS_saveMP3(57700 /*[Sonos\Ivona]*/,"Radio wird gestartet")), 30);

SNS_SetRadioFavorite(54533 /*[Sonos\Schlafzimmer]*/);
?>

Und dann ist es fast so wie ich es habe :smiley:
Man könnte aber auch noch anstelle der „30“ in PlayFiles ein „+10“ verwenden, damm wird die Lautstärke um 10 Punkte angehoben. Egal wie laut es vorher war…

Gruß,
Thorsten

In der Tat macht PlayFilesGrouping dort wenig Sinn, wollte ein bisschen damit rum spielen. :stuck_out_tongue:

Feste Aktionen haben vorher die SetGroup Funktion und Durchsagen die PlayFilesGrouping.
Ich werde mal Anfangen die Standart Durchsagen zu speichern

Ich bekomme seit neusten eine Fehlermeldung, IPS bezieht sich auf Zeile 242


 $GroupVolume += GetValueInteger(IPS_GetObjectIDByName("Volume", $ID));

Die Meldung lautet:

17.03.2016 22:40:39*| ScriptEngine*| Result for Event 28502
Warning: Objekt mit dem Namen Volume konnte nicht gefunden werden in /var/lib/symcon/scripts/29766.ips.php on line 242

Warning: Variable #0 existiert nicht in /var/lib/symcon/scripts/29766.ips.php on line 242

Die Meldung tritt nur bei einer Sonos Box auf bei den anderen nicht. Das Einzige was diese von den anderen Sonosboxen ohne Fehlermeldung unterscheidet ist, das es sich bei der Sonos Box um ein Teil eines Stereo Paars handelt. Eventuell ist das ja die Ursache.

Hi,

hmpf…

Steht bei der Box bei der es auftritt evtl. eine instanzID in „GroupMembers“ die es nicht mehr gibt oder gar eine, die keine Sonos Instanz ist?

Gruß,
Thorsten

Das war es, da stand eine InstanzID drinnen die es nicht mehr gibt. Super danke für den Tipp jetzt ist die Fehlermeldung weg.

Hi Thorsten,

darf ich dies „nochmal“ hochholen - wäre für mich super ;-)))

Frohe Ostern

Ciao herbertf

Hallo,

ich kämpfe mich als Symcon + PHP-Neuling gerade durch eine LCN <-> Symcon <-> Sonos-Anbindung.
Ich wollte einen LCN-Ausgang als absolute Lautstärke für Sonos verwenden. (0 - 100%).

Gib es einen Möglichkeit, die Lautstärke als Absolut-Wert an Sonos zu schicken?
Ich konnte in der Doku für SetDefaultVolume und ChangeGroupVolume immer nur ein Increment finden? (oder habe ich was übersehen).

Meine erste Idee, die Volume erst per Script auf -100 % und dann den absoluten Wert als Increment darauf zu addieren ist auch nicht so toll, der Regler durch die Latenz immer hin- und hersprint…

Ja GEMAG,

es geht. Du musst die LCN VAR vom Ausgang lesen, und als Sonos Lautstärke setzen per Skript, welches auf die Änderung vom LCN Ausgang als Sonos Lautstäkewert setzen.
Habe jetzt leider das Beispiel nicht zur Hand, werde das aber mal in mein Modul LCN2Sonos mit einbauen, wenn viel Zeit ist.

Danke für die Antwort.
Die „LCN-Seite“ ist mir klar. Mein Problem ist, ich möchte die Variable (z.B. 55 %) als Absolut-Wert als Sonos-Lautstärke setzen.

versuch es mal mit SNS_SetVolume(integer $InstanceID, integer $volume); . Steht aber auch in der Doku :wink:

Gruß,
Thorsten