Hallo Community,
die Sonos-Lautsprecher haben ja eine ganz pfiffige Funktion, nämlich dass ich durch einen langen Druck auf die Play/Pause-Taste eine Box zu einer bestehenden Gruppe hinzufügen oder aus einer Gruppe herauslösen kann.
Für alle, die es nicht kennen: Wenn eine Box aus ist und ich lange drücke, "sucht" sich die Box eine andere laufende Box (oder Gruppe) und gruppiert sich mit ihr. Bei nächsten langen Druck sucht es sich eine weiter Box oder Gruppe und wenn es keine weitere mehr gibt geht sie halt aus. Beim nächsten langen Druck startet dieser Mechanismus wieder von vorne.
Diesen Mechanismus finde ich wirklich sehr praktisch, da er ohne die App in die Hand nehmen zu müssen schon viele Anwendungsfälle abdeckt.
Jetzt meine Frage: Diesen langen Tastendruck möchte ich jetzt gerne mit Blockly "nachbauen", da weder der Sonos-Adapter noch die HTTP-API diese Funktion bedienen. Ich möchte ein eigenen Datenpunkt anlegen (z.B. WohnzimmerSchalten) und wenn dieser auf "true" geht soll die Logik startet und am Ende den Datenpunkt wieder auf "false" zurück stellen.
Mein Problem ist jetzt: Wie frage ich ab, welche Boxen laufen bzw. welche Gruppen bereits bestehen? Es gibt ja keine zentrale Stelle, an der ich mein Sonos-System befragen kann. Muss ich jedes mal mit einem Script den Zustand jeder einzelnen Box durchgehen?
Dann muss ich mir ja auch eine Reihenfolge merken in der ich die einzelnen Gruppen durchgehe und mir auch noch merken, mit welcher Gruppe ich die Box als nächstes verbinden möchte oder ob das lösen aus allen Gruppen gerade ansteht.
Hier habe ich gerade einen Knoten im Hirn, wie ich dies angehe. Hat jemand euch so etwas schon einmal programmiert?