SONOS - ein paar Verständnisfragen

ich hab mal ein paar Fragen an die Sonos-Freunde im Forum. Ich hab seit ein paar Tagen eine S5 und arbeite mich ins Thema ein. Ich denke, die meisten Threads hier im Forum dazu hab ich schon durch.

Was mir im Moment noch nicht ganz klar ist:

[ul][li]lassen sich in einer Zone zusammengefasste Boxen trotzdem individuell bezgl. der Lautstärke regeln? (wenn ja: wie?)
[/li][li]wie steuert Ihr üblicherweise eure Boxen? per IPS, manuell, per Webinterface, Sonos-Controller oder…?
[/li][li] ist ein (z.B. durch IPS) automatisiertes Zusammenschalten und Trennen von Zonen zu empfehlen/funktioniert das reibungslos?
[/li][/ul]

  1. ja. Einfach am Controller die Lausträrketaste anklicken und dann hast du im Popup die Lautstärke für alle Zonen die du Wahlweise verändern kannst oder als Gruppe.

  2. Per IPS prüfe ich nur ob Musik läuft, um den Verstärker zu schalten und schalte Musik auf Pause, wenn Anrufe ankommen. Ansonsten nutze ich den Controller, mein iPhone, iPad und alle Gäste dürfen sich mit der iOS/Android App selber helfen. Wenn ich Arbeite dann mache ich das von der PC Software direkt aus. :wink:

  3. Fand ich zu langsam und kompliziert. Du musst dazu die Playlisten der einzelnen Mastergeräte speichern und auch wiederherstellen nach deiner Durchsage. Das zu programmieren… Keine Lust :slight_smile:

paresy

zu 2)

schalte mittlerweile sehr viel per Taster über IPS. siehe hier :

außerdem schalte ich Sonos beim verlassen des Hauses automatisch ab.

@paresy : kannst du mal dein Anruf Skript einstellen ? Über Fritzbox ?

Was meinst Du mit Anrufscript und Fritzbox?!

Ich hab ein Script welches die Lautstärke bei einem Anruf ( Ausgehend oder Eingehend ) senkt und anschliessend wieder auf die alte Lautstärke anhebt!

Meinst Du sowas!? Oder den Anrufer per Sonon ausgeben?!

Gruß,

Peter

genau sowas, ich bezog mich auf die Aussage von Paresy oben.

OffTopic: ist deine Bude eigentlich mal fertig ? Stell mal was ein !

Hi Ihr,

danke für die Antworten, schon mal sehr hilfreich :slight_smile:

@roadster: vielleicht kann ich sogar helfen, meinst Du sowas:

das ist ein Ausschnitt aus meiner Snooze-Logik, das Script holt sich die Ist-Lautstärke der S5 und macht dann ein langsames „Fading“ auf die Soll-Lautstärke (z.B. 10%). Getriggert durch ein Event, die Prüfbedingungen - bis auf ($volume_val < 10) kannste ja rauswerfen. Anschliessend könnte man über einen weiteren trigger Volume umgekehrt auf einen neuem Zielwert (oder Ausgangswert) faden.


// fade bei Bettbelegung (Anpassung der Lautstärke auf 10% für Schlafzimmer-Box
	if (($bett == false) && ($anwesenheitsmodus > 0) && ($box_power == 1) && ($volume_val < 10) && ($snooze_val == false))
	{
	   $volume_delta = (10 - $volume_val );
		for ($count = 1; $count <= ($volume_delta + 1); $count++)
		{
	      $sonos->SetVolume($volume_val++);
			IPS_sleep(500);
		}
	}
	elseif (($bett == false) && ($anwesenheitsmodus > 0) && ($box_power == 1) && ($volume_val > 10) && ($snooze_val == false))
	{
	   $volume_delta = ($volume_val - 10);
		for ($count = 1; $count <= ($volume_delta + 1); $count++)
		{
	      $sonos->SetVolume($volume_val--);
			IPS_sleep(500);
		}
	}

Zu OffTopic: Fertig ist man doch wirklich nie oder!? :slight_smile: Wir wohnen in der Wohnung, ist aber noch ne Gimmick-Baustelle. Der kompl. LED-Kram funzt noch nicht, die EIB-Programmierung ist auch noch nicht kompl. fertig. Bilder folgen ganz bestimmt!

Hier mal mein Script um die Lautstärke beim Anruf abzusenken!! Ist die Lautstärke kleiner als die gewählte ANRUFLAUTSTÄRKE passiert nix!!

Wie immer gilt nicht Lachen… bin halt auch ein bekennender PHP-HONK wie Andere hier!! :slight_smile:
Das Script wird von einer REGISTERVARIABLE getriggert mit Port 1012 und der FRitzbox-IP.


<?
//Fritzbox CALLMONITOR der "RING, CALL und DISCONNECT raus gibt. 
$callmonitor = explode(";", $IPS_VALUE);

// Eine INTEGER wo ich die Anruflautstärke setzen kann ohne ins Script gehen zu müssen!!!
$call_vol = GetValue(40835 /*[KOMMUNIKATION\FRITZBOX\FRITZ!BOX SONOS Anruf (Register Variable)\Sonoslautstärke bei Anruf]*/);

// Hier hole ich die Aktuelle SONOS-LAUTSTÄRKE !
$sonos_vol = GetValue(29741 /*[AUDIO\SONOS\Volume]*/);

// Hier ist die LETZTE SONOS-LAUTSTÄRKE gespeichert worden ( beim ANRUF ) !
$letzte_vol = GetValue(44492 /*[KOMMUNIKATION\FRITZBOX\FRITZ!BOX SONOS Anruf (Register Variable)\Letzte Lautstärke]*/);


print $IPS_VALUE;

if (($callmonitor[1] == "RING") or ($callmonitor[1] == "CALL"))
{
   SetValue(44492 /*[KOMMUNIKATION\FRITZBOX\FRITZ!BOX SONOS Anruf (Register Variable)\Letzte Lautstärke]*/,$sonos_vol);
   
	if ($sonos_vol>=$call_vol)
	   {
			$sonos_vol = GetValue(29741 /*[AUDIO\SONOS\Volume]*/);
			SetValue(44492 /*[KOMMUNIKATION\FRITZBOX\FRITZ!BOX SONOS Anruf (Register Variable)\Letzte Lautstärke]*/,$sonos_vol);
			SetValue(16987 /*[AUDIO\SONOS\Set Sonos Volume]*/,$call_vol);
		}
}

if ($callmonitor[1] == "DISCONNECT")
{
	if ($letzte_vol>=$call_vol)
	   {
			SetValue(16987 /*[AUDIO\SONOS\Set Sonos Volume]*/,$letzte_vol);
		}
}


?>

EDIT:
Zum Verständnis meines Scriptes. Ich habe mir für SONOS Verschiedende Scripte angelegt die durch Variablen getriggert werden. In diesen Script z.B. die Set Sonos Volume (16987). Wenn ich diese Variable ansprechen bzw. änderen wird die Lautstärke gesetzt.

Gruß,

Peter

ist der Callmonitor ne Anwendung zum Download, der auf dem Server installiert sein muss ?

Ne… das funzt einfach so. Wenn du bereits deine Fritzbox in IPS am Laufen hast z.B zum Auslesen der Anruferliste etc. dann sollte das funzen.

Wenn nicht…
ClientSocket mit IP der Fritzbox und PORT 1012 —> REGISTERVARIABLE auf den ClientSocket der Fritzbox und mein Script welches in der REGISTERVARIABLE als ausführendenes Script gewählt wird.
Dann musst Du noch mit deinem Haustelefon den PORT 1012 in der Fritzbox „freischalten“ oder besser „Öffnen“.
Folgendes Wählen und den Ton abwarten: #965

Wie gesagt, hast deine Fritzbox schon in IPS hast du den ClientSocket schon. Dann brauchst nur noch eine weitere REGISTERVARIABLE und das Script.

mmh… irgendwie hängts bei mir. Habe eben schon viel gesucht, aber bei dieser Registervariablengeschichte und der Einrichtung hiervon hat es bei mir noch nicht klick gemacht… hast du mal ein paar Screenshots oder so von deiner Konfig ?

Die ganze Sonos seitige Variablengeschichte habe ich schon korrekt eingerichtet.

BTW: meine Telefonanlage hängt nicht direkt an der Fritzbox, daher funktioniert die Wählgeschichte nicht. Kann ich den Port auch Manuell öffnen ?

OK, bin weiter. Register Variable steht, nur der Client Socket bekommt den Port nicht auf. Akzeptiert ihn überhaupt nicht. Wie gesagt, so einfach über Telefonbefehl nicht möglicht, müsste ich einiges umstöpseln. Gehts per Einstellung im FritzBox Webinterface ?

Ne, ich glaube nicht! Hast kein Telefon was Du kurz anklemmen kannst?!
Brauchst an der FB auch nichts fürs Telefon verstellen!

Hast aber nur ein ClientSocket für die FB mit dem Port 1012 bzw. Versuchst diesen zu öffnen oder!?

Ihr löst mir Probleme die ich noch gar nicht habe …:wink:

So, gerade versucht mein Gigaset ISDN Phone den Port öffnen zu lassen, geht leider nicht. Schau mal obs geht wenn ich per DECT ein Telefon anbind.

So, Callmonitor läuft und Port ist offen.

Bekomme beim ausführen des Skripts noch eine „undefined variable“ Meldung. Muss ich noch irgendwas richtig benamsen im Skript für den Callmonitor ?

„Notice: Undefined variable: IPS_VALUE in D:\IP-Symcon\scripts\57622.ips.php on line 3“

Wo muss ich IPS_Value denn noch definieren ?

Ich denke ich konnte mir selbst helfen.

Die Fehlermeldung gibt es weil sich das Skript NICHT manuell starten lässt, oder ? Nur über die Registervariable, nä ?

Ich glaub es klappt. Muss nur noch was an meinen eigenen Regelungskripts ändern.

Jupp… das liegt an der IPS_Value!!

Du arbeitest aber bei Volume schon mit einer Get und einer Set Variable, oder ?

Wie oft holst du dein Volume von Player ab ?

Ich habe ein Script was alle 3 Sek. alle wichtigen Informationen abfragt ( Titel, Album, Volum, etc.

Dann habe ich mir z.B eine „Set Sonos Volume“ Variable (Integer) angelegt mit einem Script welches die Lautstärke setzt.
Diese Variable hat nix mit der Volume Abfrage-Variable zu tun.

Funktioniert mein Script bei Dir nicht oder wo hakt es?

Grüße,
Peter

Ps: …oh nein, jetzt klingelt der Wecker!

Doch, läuft.

Dieses „alle-3-sek-abfragen“ finde ich zwar unschön, mache es aber genau so.

Leider gibt es ja wohl keine möglichkeit, das sonos bei änderung der Lautstärke die Info pusht…