Mit dem Release 0.107 erhielt die Bose Soundtouch Integration nach langer Zeit ein nützliches Feature für die heimliche Beschallung über mehrere Räume. Das Soundtouch System von Bose kann auf einfachem Weg mehrere Lautsprecher zu einem Verbund zusammenschließen und Audio synchron ausgeben. Das funktionierte in Homeassistant auch seit geraumer Zeit, jedoch gab die State Machine keinerlei Infos/Attribute preis, ob aktuell ein Lautsprecherverbund aktiv und welcher Lautsprecher der Master des Verbunds war. Diese fehlenden Attribute wurden im Release 0.107 ergänzt und nach einer anfänglich fehlerhaften Implementierung mit dem Release 0.108 komplettiert. Existiert ein Zonenverbund steht nun unter den Soundtouch Media Playern das Attribut is_master: true/false zur Verfügung.

Zeitgleich zu dem Release erfuhr auch die grandiose Custom Lovelace Card Mini-Media-Player ein Update, um einfach einen Verbund (Zone) von Lautsprechern erstellen und auflösen zu können. Diese Custom Card kann einfach über HACS in Homeassitant installiert werden. Für die Nutzung von Multi-Room-Audio in der Lovelace Card gibt es einen eigenen Abschnitt in der README.

Hello Friend

Sensor zur Ausgabe des aktuellen Masters

Wer in seiner Homeassistant UI nun einen Sensor haben möchte, der angibt welcher Lautsprecher gerade der Master ist oder ob überhaupt eine Zone aus mehreren Lautsprechern besteht, kann das auf folgende Weise mit einem Template Sensor und einer zugehörigen Automation, die diesen Sensor updated, lösen. In dem folgenden Beispiel nutze ich meine drei Soundtouch 10 Lautsprecher und einen Wireleass Link Adapter, die mit dem Namensschema media_player.soundtouch_RAUMNAME benant sind.

Template Sensor erstellen

Der Template Sensor iteriert über alle Lautsprecher, prüft ob eine Zone existiert und sucht anschließend nach dem Attribut is_master. Anschließend gibt er den Namen des Lautsprechers aus. Existiert keine Zone gibt er No Master aus.

- platform: template
  sensors:
    soundtouch_master:
      value_template: >
        {% set master = states.media_player | selectattr('attributes.soundtouch_zone', 'defined') | selectattr('attributes.soundtouch_zone.is_master','eq',True) | map(attribute='name') | list | first %}
        {{ master if master else "No Master" }}
      friendly_name: 'Multiroom Master'

Automation zum updaten des Template Sensors

In der nachfolgenden Automation müssen die Namen der Lautsprecher entsprechend den von euch vergebenen angepasst werden:

- alias: Soundtouch update master sensors
  initial_state: True
  trigger:
    - platform: state
      entity_id:
        - media_player.soundtouch_kuche
        - media_player.soundtouch_room2
        - media_player.soundtouch_schlafzimmer
        - media_player.soundtouch_wohnzimmer
  action:
    - service: homeassistant.update_entity
      entity_id: sensor.soundtouch_master

Ergebnis

Der erstellte Sensor mit dem namen sensor.soundtouch_master kann nun in jeder Lovelace Card eingebunden werden:

Hello Friend