BeoLink (Bang & Olufsen)

@CMDK and @marton are any of you guys on the Discord server or something? I’d like to be able to chat to you, if you’re up for it. :slight_smile:

hey @pandaym

I have never used SONOS, just B&O and chromecasts. So I can only talk about that side of my experiences.

I have 3 B&O speakers and I love them. They work and I think they sound good. I was using the chromecast part of them to stream music, but when I started working on the beoplay component, I realised that their full functionality could be used, just need time to figure out how they work and code it (I’m not a coder, so my process is trial and error and slow :slight_smile: )

I almost have a similar setup to you. NAS DLNA, Apple TV, Playstation and the three speakers. One of them is an S8 hooked up to the projector.

I’m on discord, hanging around in the homeassistant server under the name “Marton” :slight_smile: Feel free to write anytime, but I might not be able to respond immediately :slight_smile:

Multiroom is pretty straight forward - you just tell the other speakers to play the same source (ActiveSource), and they’ll figure it out :slight_smile:

E.g. POST {“activeSources”:{“primary":"spotify:[email protected]”} to /BeoZone/Zone/ActiveSources on two different speakers and they’ll play Spotify in tandem.

I ended up implementing integration between Spotify Connect, BeoPlay and Philips Hue in NodeRed before I came across Home-Assistant. Cumbersome :expressionless:

Under some of the endpoints, you can query ?list=recursive+features to get a more exhaustive (and over time expanding) list of features and endpoints deeper down…

I can’t find a way to determine if the speaker is actually plying something other than by querying the JSON stream which I’d prefer not to (messier than the single message endpoints) - any clues?

Anyone know what /BeoZone/Zone/Light is for, BTW?
POSTing an empty JSON to it results in {“error”:{“type”:“INVALID_ARGUMENT”,“message”:“LightControl::Key type “” not known”}} - and I’m a bit nervous just poking at random :wink:

Hi @rmariboe,

Yep it’s not so much that it’s difficult to do the multiroom part, I was more thinking about how to implement it in a logical and useful way in the UI. :slight_smile:

I use it myself to distribute the sound from my old turntable to other rooms with the push of a button :slight_smile:

The light commands are some you use in relation to the Beolink gateway (or beoliving intelligence), and you need to enable ‘redirection of light commands’ in all individual product. Not sure if you can get anything out of it, but you won’t break anything by playing with it :slight_smile:

To get the state of a speaker, try using Martons custom component :slight_smile:

1 Like

Thanks @rmariboe! I’ll try to implement the multiroom this way.

As far as I know it’s only the JSON stream that tells you what is playing. I couldn’t find another way. That’s how I got it implemented in the component.

1 Like

In terms of UI for multiroom, maybe something like this is exactly what we’re missing :smiley:

This looks cool :slight_smile: Haven’t really looked at lovelace yet, but I’ll give it a go.

Hey guys,

I had some time today to look at the component again. I’ve fixed the Title not showing and also added the mute functionality :slight_smile:

I want to fix some things regarding album art, then I’ll upload a new version for you to play with.

Best,
Marton

1 Like

Hey guys,
@CMDK @pandaym

I’ve updated the files on dropbox with a new version. This has mute functionality as well as it gets all the available sources and then you can select a source.

When you’re updating the files don’t forget to update the requirements line in the beoplay.py :slight_smile:

Next up: multiroom and playing various media

Marton

Wow, awesome! Will test this weekend - thanks for your work!

Hi marton, I think you have to send the new dropbox link. Got a 404 on the existing one.

I thought dropbox will update the links. Here it goes:

1 Like

Got it up and running, and it’s looking good - only thing is, that if the speaker is not playing when I boot up hassio, it will not fetch playing state and metadata… If I make sure the speaker is playing and I reboot, it works :slight_smile:

Hey @CMDK

You’re right :slight_smile: Haven’t caught that one. Fixed it. Here is a new link:

That’s what happens when you’re not a coder :smiley:

Btw, it only gets the sources when you launch home assistant to avoid polling the speakers all the time. So if you add a new source, you should restart home assistant to get that new one in the list.

Hi marton, CMDK
First of all thanks for taking up the challenge to implement B&O products in HA. I have a A9 and two M5 speakers.

Been reading along for a couple of days and progress seems to be promising, well done so far!

I am a bit of a noob and just set up HA a week ago, so all new days for me, however I really want to see how far you’ve got and try things out. Unfortunately I’m notified of an error regarding the process even though I tried following marton’s guide to pandaym 10d ago.

Is there anything else besides uploading the zip file to the ‘custom_packages’ folder and copying the Beoplay.py file to custom_components/media_player and changing the path?
configuration.yaml is set up as instructed as well?
(Error code in getting is: component and platform: media_player.beoplay can’t be set up, please check config)

Hey SigNoget,

In the beoplay.py, go and change the location in the REQUIREMENTS field. I’m using hass.io, so in my case it’s

REQUIREMENTS = ['file:///config/custom_packages/beoplay.zip#beoplay==0.0.5']

@marton After using the component after a while, things starts happening in my log. My Volumio player stops connecting, and yesterday evening I even lost connection to my Philips Hue-hub at some point.

When I remove the beoplay: from my config, everything settles again. I’m wondering if it’s doing something to the async… What do you need from me in order to know more?

Hey,

@SigNoget, could you send me the relevant log part? That should narrow it down to the problem.

@CMDK I haven’t experienced any of this. Is there anything in the log that could help us find the issue?

Ah, correcting the path in ‘REQUIREMENTS’ did the trick! Thanks CMDK.

No, it just starts to say “Unable to connect to host etc.” for the Hue, Deconz and Volumio after some minutes… So it’s a bit weird :S

Hey @CMDK

I did a test and yeah, there is a memory leak with the most recent version. I don’t know the reason yet, but working on it.