NEWS
[Frage] Blockly: alle Sonoslautsprecher in Schleife ansprechen
-
Hallo ioBroker-Experten,
ich taste mich seit dieser Woche an mein erstes ioBroker Ziel heran :? :
meine Sonosboxen auf eine Schalterbetätigung hin zu gruppieren und auf eine zweite hin wieder zu vereinzeln.
Das Ganze klappt inzwischen "zu Fuß" (siehe den deaktivierten Teil auf der linken Seite) auch ganz gut.
Jetzt habe ich mir aber in den Kopf gesetzt, dass man das in einer Schleife eleganter lösen können müsste (siehe den aktiven Teil auf der rechten Seite).
Leider tut sich da gar nichts. Mein Grundproblem ist schon, dass ich in Blockly die Boxen nicht als durch-iterierbare Untermenge bzw. als fortlaufende Elemente einer "sonos.0.root" Gruppe/Menge ansprechen kann, sondern jede Box über die Objekt ID einzeln auswählen muss!?
Auch ein Weg über das Zusammenbauen eines entsprechenden Textstringes bringt mich nicht weiter.
Derzeit versuche ich, mich mit Blockly in die Scriptsprache einzuarbeiten. Ich vermute aber, so flexibel ist Blockly nicht.
Habt ihr einen Tipp für mich?
VG Peter
3383_schleife_objekte.pdf -
iDerzeit versuche ich, mich mit Blockly in die Scriptsprache einzuarbeiten. Ich vermute aber, so flexibel ist Blockly nicht.
Habt ihr einen Tipp für mich? `
Hallo Radioman
Na, dass ist mal eine Anfänger Aufgabe
Leider habe ich kein Sonos und keine Ahnung was Du erreichen möchtest.
Versuchen wir mal uns ranzutasten.
So wie ich Dein Problem verstanden habe, würde ich es so lösen.
Bei Fragen fragen.
Grüße
-
meine Sonosboxen auf eine Schalterbetätigung hin zu gruppieren und auf eine zweite hin wieder zu vereinzeln ` willst Du alle Sonnos Geräte in eine Gruppe zusammenschalten - in den sogenannten "Party-Modus"?
Und auf Tastendruck alle Gruppierungen wieder auflösen?
Sofern dies deine Anforderungen sind, dann http://forum.iobroker.net/viewtopic.php?f=37&t=7395.
Hier ist die Gruppierung (über eine Szene) beschrieben, und auch deren Auflösung.
Das ganze kannst Du sowohl über Alexa als auch über einen Schalter in VIS anstoßen.
-
Hallo BBTown, hallo rantanplan,
vielen Dank für Eure Hinweise.
Ja, genau das suchte ich: den "Party-Modus".
Deine Lösung über Szenen (HowTo, Step 2) finde ich sehr interessant - habe sie zusammen mit einem VIS Schalter auch gleich nachgebaut und es funktioniert soweit.
Allerdings stelle ich fest, dass auch diese Lösung nicht so weiter ausbaufähig ist, wie ich es mir vorstelle. Denn z.B. welche Box ich als Coordinator einsetze, legt man ja in den Einstellungen der Szene fix fest.
Meine Idee für die folgenden Schritte ist aber, den Coordinator über ein Dropdown Feld im VIS auswählen zu können, genauso wie die genaue Gruppierung (alle Boxen, oder nur einen Teil).
Mittels Script und Variablen könnte ich das dann vermutlich (einfacher).
Jep - das ist ein anspruchsvoller Start.
Aber alles Einfache konnte ich ja mit meiner bisherigen Lösung "everhome" schon, welche aber genau solche Sachen (Party-Modus, Favorites-set etc.) nicht kann. Nun habe ich mir dafür meinen ersten RasPi für ioBroker gekauft, da mir das weitaus anpassbarer scheint. Allerdings sind meine JavaScript Erfahrungen bisher nahe Null. Da ich mich aber etwas in Visual Basic auskenne, sind mir die Möglichkeiten solcher Sprachen nicht unbekannt.
Die Sonos Lautsprecher initial in eine Liste einzulesen, ist ein interessanter Ansatz. Was ich allerdings noch nicht erkenne, wie ich dann bei "mach irgendetwas mit der Liste" die verschiedenen Eigenschaften wie volume, favorites-set ansprechen und setzen kann!?
Zusammengefasst:
Ich suche (am Ende der angedachten Entwicklung) eine Lösung, wo ich der Gruppierungs-Prozedur:
-
den Coordinator in einer Variablen übergebe
-
die Anzahl und die Namen/IP-Adressen der Gruppenmitglieder in Variablen übergebe
-
den favoriten_set in einer Variablen übergebe
-
die group_volume in einer Variablen übergebe
-
und das dann alles entsprechend konfiguriert wird
Für die Entgruppierungs-Prozedur dann umgekehrt äquivalent.
Variablen will ich deshalb von Anfang an verwenden, da ich das Script flexibel und die Parameter später jeweils über einzelne VIS-Auswahlmenüs o.ä. auswählen können will.
VG Peter
-
-
Zusammengefasst:
Ich suche (am Ende der angedachten Entwicklung) eine Lösung, wo ich der Gruppierungs-Prozedur:
-
den Coordinator in einer Variablen übergebe
-
die Anzahl und die Namen/IP-Adressen der Gruppenmitglieder in Variablen übergebe
-
den favoriten_set in einer Variablen übergebe
-
die group_volume in einer Variablen übergebe
-
und das dann alles entsprechend konfiguriert wird
Für die Entgruppierungs-Prozedur dann umgekehrt äquivalent.
Variablen will ich deshalb von Anfang an verwenden, da ich das Script flexibel und die Parameter später jeweils über einzelne VIS-Auswahlmenüs o.ä. auswählen können will. `
Hallo radiomanEine umfangreiche und interessante Aufgabe!
Für einige Deiner genannten Anforderungen schweben mir Lösungen vor.
Aber leider habe ich kein Sonos. Da fehlen mir jegliche Erfahrungen.
Mit BBtown im Boot, der sich anscheinend Sonos auskennt und Blockly auch nicht unbekannt ist( ), könnten wir Dir eventuell weiterhelfen.
Andere Helfer sind natürlich nicht ausgeschlossen!!!! (auch nicht von der hellenen Seite der Macht, den JavaScriptlern)
Alleine müsste ich das Handtuch schmeissen
Mal schauen ob wir Teamwork hinbekommen. Wenn nicht in diesem Forum, wo dann?
Ich kann mir vorstellen das die Lösung auch für einige andere ioBroker/Sonos Anwender interessant ist.
Grüße
-
-
schau dir einmal http://preview.iobroker.com/forum/viewtopic.php?f=20&t=2952#p26650, dort geht es darum die Favoriten in einem Dropdown-Feld auswählbar zu machen.
Das sollte dir die Richtung vorgeben können wie Du das mit den SONOS selbst machst.
Den Coordinator als Steuerungelement kennst Du ja auch mitlerweile 8-)
Schau dir zudem die Screenshots in dem Thema an, dort sind ebenfalls einige Lösungen zum Gruppieren zu sehen.
-
vlt. hilft dir diese Diskussion ebenfalls weiter: http://forum.iobroker.net/viewtopic.php … 120#p76341
-
Hallo BBTown, hallo rantanplan,
vielen Dank für Eure Ausdauer mit meinem Problem.
Die Lösungen sind sehr gut, aber wieder wenig flexibel. Eventuell ist das ja sowieso "to much", was ich mir da vorgenommen habe und mehrere statische Scripte mit dedizierten Schaltern in VIS sind besser.
Ich komme die nächsten Tage nur sporadisch dazu, weiter rumzuprobieren.
Eventuell hat ja in der Zwischenzeit noch jemand eine Idee, für etwas flexibles.
Denn eine sauber programmierte Schleife könnte man zur Sicherheit auch zweimal durchlaufen, oder auch eine weitere Schleife anschließen, die prüft, ob das Zusammenschalten funktioniert hat.
Ich stelle wieder fest (das gab es auch schon gelegentlich in der originalen Sonos App), dass beim Gruppieren eine oder zwei Boxen "vergessen" werden und dann außerhalb der Party-Gruppe bleiben. Und ebenso beim Gruppierung aufheben: manchmal bleiben zwei Boxen gruppiert und man muss sie ein zweites mal ent-gruppieren. So ist es derzeit bei mir auch beim Nutzen der Lösung aus dem Szenen-HowTo (Step 2).
Wenn man dann aber beim Entgruppieren die Favorites-set setzt, spielt die Box (bekanntermaßen) sofort los.
Da das Gruppieren und Entgruppieren teilweise mehrere Sekunden dauert (ich frage mich manchmal: nur bei mir? und: ich wollte deshalb sowieso mal den Sonos Support kontaktieren), sollte man eh etwas abwarten, damit die jeweilige Aktion beim Sonos wirklich ausgeführt wurde, bevor man eine Zweite startet. Z.B. wenn ich Abends, wenn die Kinder schon im Bett sind, die Gruppierung aller Zimmer (ich habe in insgesamt 7 Zimmern jeweils eine Sonos-Box stehen) aufhebe und die Favorites-set für die morgendlichen Wecker setzte - während die Entgruppierung noch nicht fertig ist - spielen die Boxen bei den schlafenden Kindern ja einfach los.
VG Peter