Bang & Olufsen add Beolink grouping (#31880)

This commit is contained in:
Markus Jacobsen 2024-11-10 11:34:15 +01:00 committed by GitHub
parent b9a9713791
commit 1dfc78a738
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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 <https://www.deezer.com/en/profile/USER_ID> 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 <https://listen.tidal.com/album/ALBUM_ID/>, 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 <https://tidal.com/browse/track/TRACK_ID?u>, 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)
```