From 1dfc78a738bb2327ad43c90edd58b08066385fe8 Mon Sep 17 00:00:00 2001 From: Markus Jacobsen Date: Sun, 10 Nov 2024 11:34:15 +0100 Subject: [PATCH] Bang & Olufsen add Beolink grouping (#31880) --- source/_integrations/bang_olufsen.markdown | 56 ++++++++++++++++++++-- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/source/_integrations/bang_olufsen.markdown b/source/_integrations/bang_olufsen.markdown index 943f45c0035..3331cae31e3 100644 --- a/source/_integrations/bang_olufsen.markdown +++ b/source/_integrations/bang_olufsen.markdown @@ -10,7 +10,7 @@ ha_domain: bang_olufsen ha_platforms: - media_player ha_codeowners: - - '@mj23000' + - "@mj23000" ha_config_flow: true ha_zeroconf: true ha_integration_type: device @@ -48,7 +48,6 @@ Device model: type: string {% endconfiguration_basic %} - ## Actions ### play_media actions @@ -197,7 +196,7 @@ Bang & Olufsen Cloud TTS messages are limited to 100 unique messages a day and a Extra keys available: -| Data attribute | Optional | Description | +| Data attribute | Optional | Description | | ------------------------- | -------- | ------------------------------------------------------------------------------------------------- | | `overlay_absolute_volume` | yes | Specify an absolute volume for the overlay. | | `overlay_offset_volume` | yes | Specify a volume offset to be added to the current volume level. | @@ -234,6 +233,7 @@ data: ``` Playing a Bang & Olufsen Cloud TTS message with a local language: + ```yaml action: media_player.play_media target: @@ -246,6 +246,43 @@ data: overlay_tts_language: da-dk ``` +### Custom actions + +The Bang & Olufsen integration additionally supports different custom actions + +#### `bang_olufsen.beolink_join` + +Join a Beolink experience. + +| Action data attribute | Optional | Description | +| --------------------- | -------- | ------------------------------------- | +| `beolink_jid` | yes | Manually specify Beolink JID to join. | + +#### `bang_olufsen.beolink_expand` + +Expand current Beolink experience. + +| Action data attribute | Optional | Description | +| --------------------- | -------- | ---------------------------------------------------------------- | +| `all_discovered` | yes | Expand Beolink experience to all discovered devices. | +| `beolink_jids` | yes | Specify which Beolink JIDs will join current Beolink experience. | + +#### `bang_olufsen.beolink_unexpand` + +Unexpand from current Beolink experience. + +| Action data attribute | Optional | Description | +| --------------------- | -------- | ---------------------------------------------------------------------- | +| `beolink_jids` | no | Specify which Beolink JIDs will leave from current Beolink experience. | + +#### `bang_olufsen.beolink_leave` + +Leave a Beolink experience. + +#### `bang_olufsen.beolink_allstandby` + +Set all connected Beolink devices to standby. + ## Automations WebSocket notifications received from the device are fired as events in Home Assistant. These can be received by listening to `bang_olufsen_websocket_event` event types, where `device_id` or `serial_number` can be used to differentiate devices. @@ -257,4 +294,17 @@ To find Deezer playlist, album URIs, and user IDs for Deezer flows, the Deezer w Additionally a Deezer user ID can be found at by selecting the active user in a web browser. ### Getting Tidal URIs + Tidal playlists, album URIs and track IDs are available via the Tidal website. When navigating to an album, the URL will look something like , and this needs to be converted to `album:ALBUM_ID`. The same applies to playlists, which have the format `playlist:PLAYLIST_ID`. Individual tracks can be found by sharing the track and selecting the `Copy track link` method, which should yield a link of the format , this can be played by extracting the track id `TRACK_ID`. + +### Beolink + +Discovered devices and devices in an active Beolink experience are available in the properties of the media_player entity. A device is represented by its friendly name and JID, used for connecting devices. + +```yaml +beolink: + self: The current device + leader: Beolink leader (if available) + listeners: Beolink listeners (if available) + peers: Beolink peers (if available) +```