From 862e71c69c5ebfbfa721de00e4bdc9d2ce8943b9 Mon Sep 17 00:00:00 2001 From: aunefyren Date: Wed, 31 Jan 2024 09:07:37 +0100 Subject: [PATCH] New flows and readme --- .github/assets/mini-media-player-example.png | Bin 0 -> 31416 bytes .github/workflows/cron.yml | 21 +++++ .github/workflows/{validate.yml => hacs.yml} | 10 +-- .github/workflows/hassfest.yml | 18 ++++ .vscode/settings.json | 3 +- INFO.md | 8 ++ README.md | 88 ++++++++++++++++++- 7 files changed, 140 insertions(+), 8 deletions(-) create mode 100644 .github/assets/mini-media-player-example.png create mode 100644 .github/workflows/cron.yml rename .github/workflows/{validate.yml => hacs.yml} (61%) create mode 100644 .github/workflows/hassfest.yml create mode 100644 INFO.md diff --git a/.github/assets/mini-media-player-example.png b/.github/assets/mini-media-player-example.png new file mode 100644 index 0000000000000000000000000000000000000000..31728fd3c2682a45aa0d4d6d902fa5c210965840 GIT binary patch literal 31416 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 +
+ +> [!IMPORTANT] +> This integration is built on top of the official one. I did not create all the original source code, but I am developing it further. Everything might not be perfect yet as I am learning and fixing the code. Feel free to open an issue to contribute. + +## Main features +* Group variable refreshes properly in Home Assistant +* Group variable works with groups bigger than two +* Works with [Mini Media Player](https://github.com/kalkih/mini-media-player) grouping +* Further updates if improvements can be made + +
+
+ +## Installation instructions +The installation within Home Assistant is identical to the official Bluesound integration, but you have to select the platform `bluesound_alt` for your media players. + +1. Install `bluesound_alt` in HACS (might have to be added as a custom repository) +2. Open the Home Assistant `configuration.yaml` and add the Bluesound media speakers using the `bluesound_alt` platform + +`configuration.yaml` example: +``` +media_player: + - platform: bluesound_alt + hosts: + - host: 192.168.10.73 + name: C700 Amplifier + - host: 192.168.10.46 + name: Pulse Soundbar + - host: 192.168.10.77 + name: Pulse Flex Bathroom + - host: 192.168.10.93 + name: Pulse Flex Office +``` + +
+
+ +### Example: Mini Media Player YAML +I fixed the original integration for Bluesound mostly because I wanted to do proper speaker grouping. This is something I wanted to achieve through the Mini Media Player card. Below is an example of how you can use the `bluesound_alt` speaker devices through Mini Media Player: + +``` +type: vertical-stack +cards: + - type: custom:mini-media-player + entity: media_player.pulse_soundbar_2 + artwork: material + group: false + hide: + power: true + icon: true + source: false + speaker_group: + platform: bluesound + show_group_count: true + entities: + - entity_id: media_player.pulse_soundbar_2 + name: Living room soundbar + - entity_id: media_player.c700_amplifier_2 + name: Living room stereo + - entity_id: media_player.pulse_flex_bathroom + name: Bathroom speaker + - entity_id: media_player.pulse_flex_office_2 + name: Office speaker + +``` + +Note that the platform here says `bluesound`. This is because Mini Media Player sort of has Bluesound support, but it doesn't work properly because the official integration is old. By selecting `bluesound` in the card configuration we are using their Bluesound settings with our Bluesound Alt devices. + +Result: + +![Alt text](.github/assets/mini-media-player-example.png) + +
+
+ +## Ideas for further development +Would love to hear how many Bluesound users there are who also use Home Assistant. Hoping to hear some suggestions on what people are missing and what could be improved. +* Optimize code for faster/more efficient speaker communication? +* Add speakers through the UI? \ No newline at end of file