Klingel und Sonos

Hallo,

ich würde gerne durch ein Phpscript dem Sonosplayer zwingen einen Klingelton (Mp3File zb. „Hallo, es ist ein Besucher an der Tür“) zu spielen (wenn jem. an der Tür klingelt), danach sollte der Player mit der Playlist fortzufahren ohne das der Klingelton später wiederholt wird. Wenn der Player vorher nicht aktiv war (Keine Musik spielte) sollte er nach dem Kingelton auch keine Musik spielen.

Hat jemand eine Idee,

vielen Dank und Gruß
Marc

Das was du möchtest ist leider nicht so einfach Möglich.

Du willst im Grunde ja auch noch, dass alle Zonen kurz zusammengefügt und naher in den Ur-Zustand wieder gebracht werden. Oder Alternativ (aber nicht so schön) die Meldung über alle aktiven Zonen-Master gesendet wird.

Man könnte vielleicht mit ein wenig Logik den Klingelton in die Queue patchen und nach dem Abspielen diesen löschen. Zu Bedenken ist aber das Problem, dass ein Radio-Stream nicht in der Playlist ist und auch nicht als solches Behandelt werden kann.

Die einfache unvollständige Lösung ist hier:

Du kannst sie gerne erweitern.

paresy

… getestet und für gut befunden:

$adr = "192.168.2.100";  	 
$sonos = new PHPSonos($adr); //Sonos Bad 
$sonos->ClearQueue(); //Playlist löschen
$sonos->AddToQueue("x-file-cifs://Server/Sound/test_8khz_16bits.wav"); //Datei hinzufügen
$sonos->SetQueue("x-rincon-queue:RINCON_"."HIER DIE MAC DES PLAYERS ZB: FFEEDDCCBBAA"."01400#0"); //Playlist auswählen - nötig, wenn Radio vorher ausgewählt war)
$sonos->SetVolume(30); //0-100 in %
$sonos->Play();
IPS_Sleep(5000);
$sonos->SetRadio("x-rincon-mp3radio://ndr-ndr1wellenord-hi-wma.wm.llnwd.net/ndr_ndr1wellenord_hi_wma");
$sonos->SetVolume(20); //0-100 in %
$sonos->Play();

Wenn der Player vorher nicht

If-Anweisung

nach dem Klingelton

Flag

Vorausgesetzt: IP-Symcon kennt letzte „Musik-Quelle“

MST

PS: SetVolume gilt nur für den Player mit der o.g. ID-Adr.

@Paresy

dem Sonosplayer

nicht alle(n).

MST

PS: funktioniert bei mir auch mit verknüpften Zonen

Gibt es für diese Klingel-Unterbrechung schon einen Ansatz für die Squeezebox ?

Ich würde meine Präsenzmelder gerne auswerten und dann nur in den „besetzten“ Räumen auf den Squeezeboxen das klingel-Signal ausgeben.

Danke für Anregungen !

Meinen grundsätzlichen Ansatz siehst du in diesem Beitrag.

Du müsstest dir nur eine Liste der aktiven Räume erzeugen und die vor der Ausgabe am Besten synchronisieren.

:DDas behandeln der aktuellen Playlist oder Queue für die Meldungen ist evtl. gelöst, siehe meinen Post http://www.ip-symcon.de/forum/f53/php-sonos-klasse-ansteuern-einzelner-player-7676/index7.html#post116280

Grüße, Benjamin

Hallo zusammen

Ich wollte eine Meldung auf dem Sonos abspielen mit folgendem Script.


include("PHPSonos.inc.php");
$sonos = new PHPSonos("192.168.xxx.xx"); //Sonos ZP IPAdresse$sonos->ClearQueue(); //Playlist löschen / delete pl$sonos->AddToQueue("x-file-cifs://ServerKeller/Musik/Sonos Sounds/Alarmanlage Haus Verlassen.mp3"); //Datei hinzufügen//Playlist auswählen (Nötig, wenn Radio vorher ausgewählt war) / select pl - this is needed after playin radio$sonos->SetQueue("x-rincon-queue:RINCON_"."000xxxxxxxxxxxxx"."01400#0");$sonos->Play();

Leider bekomme ich immer Diese Fehlermeldung


Fatal error:  Uncaught exception 'Exception' with message 'Error sending command: HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 347
CONTENT-TYPE: text/xml; charset="utf-8"
EXT: 
SERVER: Linux UPnP/1.0 Sonos/19.4-60120 (ZPS5)
Connection: close


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>714</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>' in C:\IP-Symcon\scripts\PHPSonos.inc.php:240
Stack trace:
#0 C:\IP-Symcon\scripts\PHPSonos.inc.php(163): PHPSonos->sendPacket('POST /MediaRend...')
#1 C:\IP-Symcon\scripts\45076.ips.php(13): PHPSonos->SetQueue('x-rincon-queue:...')
#2 {main}
  thrown in C:\IP-Symcon\scripts\PHPSonos.inc.php on line 240
Abort Processing during Fatal-Error: Uncaught exception 'Exception' with message 'Error sending command: HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 347
CONTENT-TYPE: text/xml; charset="utf-8"
EXT: 
SERVER: Linux UPnP/1.0 Sonos/19.4-60120 (ZPS5)
Connection: close


s:ClientUPnPError714' in C:\IP-Symcon\scripts\PHPSonos.inc.php:240
Stack trace:
#0 C:\IP-Symcon\scripts\PHPSonos.inc.php(163): PHPSonos->sendPacket('POST /MediaRend...')
#1 C:\IP-Symcon\scripts\45076.ips.php(13): PHPSonos->SetQueue('x-rincon-queue:...')
#2 {main}
  thrown
   Error in Script C:\IP-Symcon\scripts\PHPSonos.inc.php on Line 240

Ich hoffe es kann mir Jemand helfen.

Mfg Stefan

Hallo

Ich habe es jetzt gelöst.
Es waren ein paar Zahlen zuviel in der MAC Adresse des Players.
Ich muss mich nochmal Entschuldigen das der Code so unleserlich ist.
Ich habe jetzt gemerkt das ich die PHP „<P und >P“ vergessen habe.

Mfg Stefan