NEWS
IoBroker Adapter für SONOS
-
Hallo zusammen,
seit einigen Wochen setze ich ioBroker auf einem Raspi3 in unserem Haus ein und bin von den Möglichkeiten der Plattform schlicht begeistert! auch das Forum liefert super Unterstützung!
Mit Eurer Hilfe habe ich es geschafft, mein Sonos System auch über Alexa zu steuern.
Dazu habe ich folgendes Script gefunden und an meine Gegebeneheiten leicht angepasst:
// ######################## Sonos Wohnzimmer Favoriten setzen ######################## on({ id: "sonos.0.root.192_168_0_113.state_simple"/*Sonos Wohnzimmer ist an*/, val: "play" }, function(obj) { if (getState("sonos.0.root.192_168_0_113.muted"/*muted*/).val === true) { setState("sonos.0.root.192_168_0_113.muted"/*muted*/,false); // falls MUTE eingeschaltet war, MUTE ausschalten } setState("sonos.0.root.192_168_0_113.favorites_set", "Bayern 3") });
Das funktioniert auch super. Allerdings ist es nicht möglich auf andere Quellen, die an der Playbar angeschlossen sind, umzuschalten, ohne daß wieder der o.g. Bayern 3 Stream nach 2 Sekunden wieder abgespielt wird.
Hier erstmal mein Setup:
-
Im Wohnzimmer habe ich eine Playbar, eine Sub und 2x Play:1 zu einem 5.1 System gruppiert.
-
Der Sonos Adapter hat die version 1.5.0
-
An die Playbar ist mein Samsung TV bzw. mein Sky-Receiver über ein optisches Kabel an den Line-in der Playbar angeschlossen. Am TV sind externe Lautsprecher zur Ausgabe eingestellt.
Wenn ich nun Musik über das Sonos System höre und dann den Fernseher einschalte, wird der Audio Stream (Bayern 3) kurz unterbrochen. Nach ca. 2 Sek. startet aber der Stream erneut und das Audio vom TV ist weg.
Mein wunsch wäre, daß das Audio der TV-Quelle abgespielt wird.
Ich vermute, das liegt an dem "play" state im o.g. Script, wodurch immer Bayern 3 als Favorit eingeschaltet wird wenn die Sonos läuft.
Gibt es eine Möglichkeit über den Sonos Adapter den Line-in der Playbar abzufragen und damit das Einschalten des Favoriten durch eine Abfrage im Script abzufangen? Oder hat jemand eine andere Lösung dafür?
Besten dank für Eure Hilfe im Voraus!
-
-
Ich das Problem mit Hilfe des Parser-Adapters und des Sonos Web-Interfaces glöst!
Und zwar so:
1. Parser-Adapter installieren.
2. Nach der Installation gebt ihr folgendes für den Adapter ein und speichert die Angaben:
Name: sonos_toslink_status
URL: http://IP-ADRESSE-DER-PLAYBAR:1400/status/toslink
RegEx:No
Role: switch
Type: string
Das default poll intervall von 5000ms habe ich übernommen.
Unter der URL der Playbar erhält man die Information, ob am optischen Eingang ein Gerät angeschlossen ist und die Streaminfo.
Im übrigen erhält man unter http://IP-ADRESSE-DER-PLAYBAR:1400 eine ganze Latte interessanter Infos zur Playbar.
3. Das oben erwähnte Skript habe ich wie folgt angepasst:
// ######################## Sonos Wohnzimmer Favoriten setzen ######################## // Prüfung, ob ein Signl am TosLink (optischer Eingang) anliegt und wenn, ja keinen Favoriten setzen. on({ id: "sonos.0.root.192_168_0_113.state"/*Sonos Wohnzimmer ist an*/, val: "play" }, function(obj) { if (getState("parser.0.sonos_toslink_status"/*toslinkConnected*/).val === "No") // falls kein Gerät am TosLink-Eingang angeschlossen ist, setzte Favoriten, sonst das aktuell am TosLink anliegende Audio abspielen { if (getState("sonos.0.root.192_168_0_113.muted"/*muted*/).val === true) // falls MUTE eingeschaltet war, MUTE ausschalten und Bayern 3 als Favoriten setzen { setState("sonos.0.root.192_168_0_113.muted"/*muted*/,false); setState("sonos.0.root.192_168_0_113.favorites_set", "Bayern 3"); } } });
4. Fertig ist der Lack!
Wenn ich nun meinen TV einschalten bzw. den Sky-Receiver, dann wird der zugehörige Audiostream abgespielt, ohne dass dieser wieder auf Bayern 3 umschaltet.
Herzlichen Dank an dieser Stelle an Bluefox für den Parser-Adapter!
Falls jemand eine elegantere oder einfachere Lösung hat, dann nur her damit!
-
Wie kann ich den Die Playbar zwischen Radio und Fernseher(toslink) hin und her schalten per Skript?
-
Keiner nen Tip?
-
Hallo andyb,
ich sehe im iobroker keinerlei Veränderung an irgendeinem Datenpunkt, wenn der optische Eingang aktiv ist. Insofern gibt es - zumindest im aktuellen Adapter - schon gar keine Möglichkeit, einzugreifen.
In der Playbar selbst (http://IP-SONOS-BOX:1400/status) sehe ich sehr wohl einen Datenpunkt "Toslink Status". Inwiefern der auswertbar ist und ob da über eine Weiterentwicklung des Adapters Einfluss genommen werden kann, entzieht sich leider meiner Kenntnis.
Gruß
Manfred
-
Hallo Andy,
so ganz verstehe ich dein Anliegen nicht.
Willst du auf der Playbar (die wohl beim Fernseher steht), Radio hören, während der TV läuft?
Wenn nein, dann müsste doch die o.g. vorgehensweise für dich passend sein?
-
Situation:
Fernseher ist an um Ton vom Fernseher wird auf der Playbar über Toslink ausgegeben. Die Playbar aktiviert das ja automatisch wenn man Fernseher einschaltet.
Nun starte ich per Script automatisch um 19 Uhr Radio (Nachrichten) auf der Playbar. Egal ob Fernseher an oder nicht. Nun soll die Playbar wieder nach 5 Minuten per Skipt wieder auf die Ausgabe Toslink umgeschaltet werden. Der Fernseher läuft ja unter Umständen schon.
2. Case
Ich lasse mir per sayit die Alexa Kommandos bestätigen. Wenn nun Radio läuft und ich sage "Alexa schalte Fernseher an" kommt es manchmal vor das während des einschalten das sayit ausgeführt wird und iobroker nach erfolgter Ausgabe von sayit wieder Radio einschaltet weil das der Zustand vor sayit Ansage war. Deshalb würde ich in das Skript von Fernseher einschalten auch gerne das umschalten auf den Toslink einbauen.
-
Ich hab für mich eine Lösung gefunden.
Im Harmony Adapter bei dem Gerät Playbar gibt es einen Switch "Input.
Dieser bewirkt das die Playbar auf den Toslink umschaltet.
Ist halt indirekt und nicht im Sonos Adapter.
-
ich sehe im iobroker keinerlei Veränderung an irgendeinem Datenpunkt, wenn der optische Eingang aktiv ist…
...In der Playbar selbst (http://IP-SONOS-BOX:1400/status) sehe ich sehr wohl einen Datenpunkt "Toslink Status" Inwiefern der auswertbar ist und ob da über eine Weiterentwicklung des Adapters Einfluss genommen werden kann, entzieht sich leider meiner Kenntnis. `
Kann vielleicht ein Fähiger mal danach schauen. Wäre echt gut, wenn der Toslink-Status als Datenpunkt zur Verfügung stände.
Ich würde das gerne nutzen, um Gruppen aufzulösen bzw. andere Speaker auszuschalten, wenn der TV aktiv ist.
Danke schon mal!
Manfred
-
Ich habe nur durch Zufall das Problem hier gesehen.
Github issue währe besser.