ESP32 with Bluetooth Speaker as Media Player for Music Assistant

Hi,

I have existing nice Visaton DL 13/2 ES ceiling speakers powered by a Nobsound ns10g pro Bluetooth amplifier. It is working great with an amazon echo device connected (“Alexa connect to my speaker”) over bluetooth and an amazon music subscription.

However I would like to cancel my monthly donation to Jeff Bezos’s bank account as I am not a big fan of phallic rockets.

Instead I would like to use the new Music Assistant to access my own library of music and stream that somehow over Bluetooth A2DP to the nobsound ns10g pro amplifier.

Some ESP32 devices are listed on the Music Assistant supported players page but I cannot find a way to flash an ESP32 board to be a player that can connect over Bluetooth to the amplifer/speaker combo.

Maybe someone can give me a tip or pointer.

Cheers,
Chris

1 Like

Perhaps have a look at ESPHome documentation ? :wink: Media Player Components — ESPHome

1 Like

That’s asking a lot from a tiny little ESP32…

You can try Squeezelite-esp32, but keep in mind that wifi-to-esp32-to-bluetooth streaming is still considered experimental and is not fully supported:

Note that streaming to a Bluetooth speaker is not the main purpose and remains experimental, so your mileage will vary. We will not work on improving or fixing that feature, please don’t open issues about that.

1 Like

Thanks. I wanted to avoid using a spare Raspberry Pi 3B+ as it seems a bit overkill. Seems like a job for a Raspberry Pi Zero W to me - bang a DLNA client on there and maybe a script in HA to reboot it if needed.

Any news on this topic so far?

I mostly find ESP32 solutions to build a bluetooth speaker out of a conventional speaker, but almost none if you want to build a Wifi speaker out of a bluetooth speaker. Don’t get me started on how to get it in Home Assistant afterwards :sob:

1 Like

I’m using this for my amplifier:

Hope this is what you are looking for

1 Like

Have you managed to find a solution yet ??

I am looking for a solution to Marshall speakers to integrate with HA… but am not sure if the SqueezeESP work with it.

What is your use case?

Me: Home Assistant → WiFi → ESP32 → Bluetooth → Bluetooth amplifier with speakers / Bluetooth speaker. I want the option of streaming from my phoen youtube / internet radio or from Home Assistant.

I won’t be pursuing this until spring time as my speakers are outside in a ceiling over a table and it is winter here.

Almost same as your use case.

I simply want to use the Marshall Bluetooth amplified speaker with Home Assistant to play Local music files, Internet radio.

And hopefully in the future make it work with Rhasspy voice control.

I’ve found couple possible solutions but I don’t really want to risk it without an easy to follow step by step guide.

Edit: It also has a 3.5 AUX input option, which I might actually use with Makerfab’s ESP 32 Wrover audio player. Lets hope it gonna work out :wink:

I’m using ESP32s around the house for light/temp/motion detection.
I’d like to use the bluetooth proxy feature to connect a bluetooth speaker (eg. Band & Olufsen A1 2nd Gen) to stream music/message on the bluetooth speaker (in the shower for instance).

Connection flow looks similar to @chchrlam : Home Assistant > WiFi > ESP32 > Bluetooth proxy > Bluetooth speaker. So virtually, it’s like connecting a bluetooth speaker directly to Home Assistant.

Bluetooth proxy works as I see new bluetooth devices (eg. oral toothbrush) popping in the device/integration dashboard.

But what integration supports bluetooth speakers and would handle the configuration/connection to the bluetooth device? (I’m using Home Assistant docker, so I don’t want to manually install/configure anything inside the container)

From what I’ve read in other posts, it looks like we need a “media_player” type integration.

Is the above correct? any ideas/reactions/pointers?
Thanks!

I am looking for exactly the same integration. To be able to integrate some bluetooth speakers I have.
So far no other ideas as to go with rather extensive (or at least seem to be complex) Squeezelite-esp32 - which should connect to BT speaker from ESP32. But then I am afraid this ESP32 cannot act as Proxy ? - not sure about it…
Anyhow maybe the other scenario is to look for ESPHome media player which can utilise BT speaker as an output ? ESPHome already has media.player component…

I’m looking for a solution for a similar use case, but ideally with a bluetooth headphone instead of speakers. Walking around and handing over between BT proxies would even be cooler if that could work.

Thanks - I had a look at Squeezelite-esp32 and found this mention:

Note that streaming to a Bluetooth speaker is not the main purpose and remains experimental, so your mileage will vary. We will not work on improving or fixing that feature, please don’t open issues about that.

The alternative seems to be an ESP speaker (ie. with the speaker integrated to the ESP board), like https://raspiaudio.com/produit/esp-muse-luxe. But that’s not exactly the use case I’m after.

I’m hoping that the latest bluetooth proxy update from 2023.7 enables exploring this use case further!

Is there any progres with bluetooth integration of any speakes, is there any chance to integrate JBL bar 1000 into HA?

I am diving into this pretty new to doing anything of value in HA and certainly new to ESPHome… but I think that speakers are not BLE devices and I think BTProxy only supports BLE devices currently… and more specifically BLE devices that have direct device integration in HA.

It is my understanding that the Squeezelite ESP, or people who have forked or taken the code for BT speakers within it is the only thing anyone has done to get BT speakers working to stream audio… and there is a bunch of limitations.

I am beginning to believe this is not the right platform for this and hoping one of you all will tell me I am wrong. From my reading, using the internal DAC for audio out is cracklie too and even wiring a headphone jack into it and using an analog in on the BT speaker over i2c is also highly limited due to the resource constraints of the platform.

Please someone tell me I am wrong and if you have a good direction for (ideally) BT speaker support over BT Proxy, BT speaker support for HA… or recommended direction as mine seems to be currently flopping… it would be awesome.

1 Like

ESP platform has functionality to work with bluetooth A2DP, it is described in the API:
Bluetooth® A2DP API - ESP32 - — ESP-IDF Programming Guide latest documentation.
I also found these developments:
GitHub - pschatzmann/ESP32-A2DP: A Simple ESP32 Bluetooth A2DP Library (to implement a Music Receiver or Sender) that supports Arduino, PlatformIO and Espressif IDF
I am not a programmer or a developer, but in my understanding there is a potential possibility of realization of this idea.
I guess, we need to modify the existing ESP media player component so that it could broadcast media and TTS received from HA not to i2s audio device as it is now, but via A2DP.

Although, I see a simpler hardware solution - on Aliexpress and other stores there are cheap bluetooth audio transmitter boards that can be easily connected to the i2c outputs of the audio module. If there will be two-way support (after all, most BT speakers can work as headsets), then the return channel can probably also be fed through i2c or otherwise to use the voice assistant.