OH3: multi-room audio and underlying hardware infrastructure w/o cloud and/or paid services

As we know, there are varying degrees in the philosophy of localised and externalised operation of openHAB.

I am in the former camp; a vivid advocate of localised systems; independent of any external system. In fact, I am almost entirely off the grid. That is, off the grid with water, sewer and (here is the almost) electricity, where I use the grid as backup, with a 20kWh battery to ensure night-time or non-solar operation.

Why the intro? Because it should provide a sense for what solutions may fit well with this lifestyle.

What am I looking for? I am seeking input from the OH community about the composition and components of an multi-room audio system suitable for the interaction/integration with OH.

I have read a few of the threads on this topic:

… some dating back to 2018 (or earlier), some with links that no longer work. This indicates, that some of the recommended gear has been discontinued; be it proprietary or open source.

I’m in the process of completing a house (some will remember) which I started in 2014. But health and other live events threw a spanner in the works. I am back into it (since July this year). My point: I have an opportunity to run cables where I need them, be it audio or power.

I can build things with micro-controllers and SBCs, hence, I am not shying away from creating my own gear (may lean towards it); however, it must make sense. For example, some are fond of a 6 or 8 channel amplifier, that even has an OH binding, supporting other amplifiers. It costs ~600 USD. Given it has 6 or 8 channels, building the equivalent with individual Raspberries and amplifiers, does not seem economical. However, if the individual build has far greater functionality, I would go for it.

I am a hermit when it comes to using external sources; e.g., I do not have any subscription entertainment services. (Don’t watch TV for that matter.) However, I have a NAS with my ripped LPs and CDs I am content with.

While the first use case is multi-room audio, I bought the ESP32-S3 voice box to have a crack at it (as a later, second use case). I am not sure though, whether any voice control reply can (or should) be played back over the audio system, or whether this is even desirable/useful. As for room microphones, I learned/understand that this should be left to dedicated (purpose-built) devices.

While I understand wires, speakers and electronics, I am a total novice when it comes to multi-room audio. Hence, I will appreciate any input and guidance.
Maybe this post can develop into a reference thread, up-to-date for 2023 and beyond.

I should add that I am not after disco power amplification. Background music will do just fine; yes, not the lousiest quality. For example, I found these ceiling speakers quite nice for the living room, TV / DVD experience. Yes, I am happy for ceiling speakers to be used in all relevant rooms. But the quality can be same or lower in the other rooms.

Connectivity can be wired, Ethernet, Bluetooth, Zigbee…

I actually do not know what other questions to ask, which I hope will come from the feedback I may receive. Thanks :slight_smile:

The only thing I can say in response is Amplipi. Works for an year now. There are some bugs related to the announcement that I posted over their GitHub and also some radios station especially flac that have some issues but overall I found workarounds around them. Their GitHub activity lately has been slow to add new feature but if you have the time you can contribute. Overall solid equipment upgradable I also changes the raspberry pi module to a more powerful one works great sound is top and does what it says on the tin. Of course like with everything it can be improved. The only downside is all your speaker have to be wired to it. No wireless capability but I guess if you play with alsa you can stream to another device via the network and make your own custom implementation. Oh and another limitation is that the matrix 4x6 plus extension what does that mean 4 audio sources and 6 zone plus extension if you have.
Read about and let us know

Wrote it there, write it here :slight_smile:
I’m using Logitech Mediaserver (formerly Squeezebox Server).
While the product itself (Squeezebox) is no longer for sale, the Server is actively developed and there are tons of options to build a fake squeezebox :slight_smile:
Either use Windows, Mac or Linux and put squeezelite on top, or take a out-of-the-box solution with a Raspberry Pi and PiCore Player (also using squeezelite). There are Clients for iOS and Android (both capable to control every Client in Network and play Audio as a Client itself).
It’s completely free and local and its openHAB features are quite nice (Squeezebox Addon).

2 Likes

Interesting!

What is the smallest, as in lowest spec Pi one can use for squeezelite? Not knowing any better, I suspect the Pi Zero 2W being too under-powered and it seems wise to use a rPi4… The 4 could be used to take on other room functions if required?!

Or is piCore the better option?

If using squeezelite do I need a LMS running on the same or different machine to pull the music files from the NAS?
Does it actually pull, or only creates a play list?

I am trying to get my head around this topic, reading in the binding doc: “At least one Squeeze Server is required to act as a bridge for Squeeze players on the network.”
So that seems to answer the question that I need an LMS in any case in order to integrate this with OH?!

So looking at the infrastructure and required components, I’d need:
1 x rPi4 for an LMS
1 x rPi4 per room running squeezelite, plus a DAC/amplifier to drive the speaker(s)
1 x OH squeezebox binding

Why would I use a piCore instead of squeezelite? To add more workload to the pi? Given the OH integration, I would not need an interface to the client?

I listed the rPi4 for a client as it has an Ethernet interface I prefer.

As I understand piCore, it is a stripped down Linux OS which fits into memory?! where I suspect it would be more difficult to add other application (given the ample power of the rPi4 to do other jobs)?


I understand these are all noob questions. All I need in the first place is to settle on the tech and run the relevant cables, installing the gear later. But maybe I should prototype this and play with it to familiarise myself with it.

It depends :slight_smile:
In question of Pi zero for a squeezelite, I did not try, but it should be totally fine. squeezelite did a great job on a Pi 1B for me, so the Pi Zero should do it easily. But be aware that on-the-fly decoding Audio may vary dependent on the codec, I’m using only mp3 (mostly 192kBit/s or variable Bitrate with a high q level, on average 192 kBit/s as well) See https://docs.picoreplayer.org/components/raspberry_pi/#models for more details

You will of course need one LMS up and running, as this is the source of all audio files, playlists and so on.

You can use one PiCore Player as a LMS server simultaneously, but of course this one must be up and running all the time to keep serving for other clients.
PiCore Player will also serve a frontend, you can use e.g. a 7" touch screen in combination with a Pi to have a UI as well as the Sound output.
If you want to have really good sound use some HAT (e.g. Hifiberry or similar, there are models with a full blown Class D Amp), or use the HDMI digital output (but then you’ll have to use an AV Amp…) There are quite some options…
PiCore Player is optimized for this one job, I doubt that you should run other applications in parallel.

1 Like

I just wanted to share my setup:

I have 3 different Yamaha AV receivers, an older one without MusicCast in the living room and two newer models with MusicCast in two other rooms.
The Yamaha AV in the living room has 4 zones and also powers the passive speakers in the bathroom and the active speakers in the kitchen.

All Yamaha AV models have a well-documented local API, that can be used to control nearly every function of the amplifier. MusicCast models also support multiroom audio, either via WiFi or ethernet (RJ45). Yamaha does not even offer a cloud, so these work 100% offline and local (except you use Spotify, Deezer or ethernet radio). The MusicCast models broadcast most events via UDP to openHAB so power state, volume etc. are basically real time, and not refreshed every x seconds.

I am not sure if you can use openHAB to actively select a song from your media server (I have a Synology NAS, which is accessed over DLNA), but I have defined several favorites which I can recall using openHAB.

Yamaha also has some MusicCast network speakers without video functionality, those are cheaper than the real AV receivers, but I currently have none of them in use.

Why not run LMS on the machine OH is running on? At least that’s what I am doing.

What do you mean here exactly? LMS needs to have access to the music files in its own file system, which can very well happen via e.g. NFS mount or something. It then streams the files to the clients via HTTP.

Well, it’s inadvisable to install random additional software to openHAB on the same machine, and while it’s for sure possible, I would not recommend it either.
Keep systems clean and separate, makes things so much easier…

Well, my talk is cheap, as I have a big server with virtualization (64Gig RAM, 40TB HDD, 2TB SSD, (both RAID-Z) 6 Cores., 12 Threads, 2 10Gig LAN Ports… :sunglasses: ) so easy to separate all services to different virtual machines or containers.

1 Like

Well LMS is a piece of server software, just as OH is a piece of server software. I’m not sure what the problem in installing both on the same machine is supposed to be.

Except that you increase maintenance burden of keeping e.g. all those systems up to date.

… of whose CPU and memory resources are mostly wasted into virtualization :wink:
Seriously though, I don’t know your use case, but for normal home automation use cases your machine seems seriously overpowered.
I’m also unsure how virtualization helps you in that context, aside of being able to run different OS versions for different pieces of software, which in turns seems like a maintenance nightmare. YMMV obviously, though.

And the point is, that you shouldn’t run many services on one machine. Of course you can do it, but you have to take care of all parts yourself.
openHAB is mainly used on a Raspberry Pi with the openHABian Image, because you’ll get a predictable environment. There are enough problems alone with that “carefree package”.

Yes, sure but not in my scenario, I have tons of services run by LXC, some with really old debian versions, because the software isn’t maintained any longer, so I’m stuck here, and in other cases, there is just “not yet” a new version which will work on the current version.
For example I have a MFi database for MPower hardware, Ubiquiti doesn’t maintain the packets any longer, there is no other option than to use lenny (!) as there are dependencies to specific Java and and MongoDB version. And indeed it would be a nightmare to maintain that piece of sh*t on one machine.
LXC → easy, no stress deployed in five minutes (manually, not automated)
It’s all about separation, which works really fine. And I have a big amount of data which shouldn’t be destroyed (and of course I have a small backup server which gets all data on a daily basis).

But that whole story is out of scope, my point is, not to mix services in one machine when not necessary.

1 Like

I understand you use case (now, thanks for the explanation :slight_smile: ), but our view of ‘not necessary’ differs, I guess. IMO, as soon as using multiple RPis is considered (such as here), I’d rather consider using a small PC (NUC or thin client), as doing so will likely be cheaper, more powerful and more energy efficient.

Well, as said, you can simply run LMS on a PiCore Player, which will be there anyway.

Yes… music files source. A NSF mount is perfect. I didn’t want to have the need to copy all the files onto another machine.

In essence, I want to keep OH entirely separate… simply for supportability reasons. It’s a small price to pay when the system (or rather I) may struggle to get something working or encounter a problem. The forum has been good to me. :100:

Though agree with your stance that a NUC-type machine would be more efficient.


I will have a crack at network-booting the piCore machines.

As for the display options, I envisage a single display per room to hopefully drive everything for/in that room.


Thanks guys, keep the ideas coming. :slight_smile:

Ok here are my 2cents…

I’m also running LMS and several Picoreplayers on Pi 2b/3b…

My openhab install is running via a LXC Container on proxmox, and also my LMS and other services are containerized.

For some PCPs I’m using a DAC shield, others are running with active speakers which do not need an additional amp.

IMO running a containerized setup is the best way to go, you can easily clone or recreate (corrupted) containers and it’s the easiest way to add new services to your home automation.

My proxmox is running on a refurbished Lenovo ThinkCentre M710q with Intel i5-7400T and 32GB RAM with a 1TB M.2 PCIe NVMe. (Which cost me less than 300$ over all)

Additionally I’m running a NAS with NFS/SMB shares to serve all my data like movies, audio, documents etc…

cheers,
Dan

1 Like