It is interesting to see what other people are doing and how they are doing it. I thought I would share a bit about my system.
I have just completed (or almost completed) a renovation of my house. Part of it involved putting multiple ethernet drops everywhere so all the AV can be hardwired. (I have 40 ethernet drops in a 2000 sq-ft 3BR, 2BA house.) Ethernet distribution is handled by a 48 port cisco Catlyst 4948 switch in the house and a cisco SG300-20 in my workshop. (I plan to use VLANs and subnets to isolate ethernet broadcast domains.) I have WiFi but I try to limit it to only those devices that can’t be connected to a hard-wired port. In other words I try not to stream audio or video to WiFi-connected devices.
I have a single central server, a Mac Mini core i7 with 256 GB SSD boot disk and 6TB of RAID storage connected by thunderbolt. All the Media lives on the RAID. The server runs Roon and Indigo, my home-automation system. The server pretty much controls everything in the house. (And I mean EVERYTHING.)
All audio is distributed by RAAT. I started out using Airplay but it just wasn’t flexible enough. It is really clear that Apple has left audiophiles in the lurch. If we aren’t buying crappy compressed audio tracks on the iTunes store they aren’t interested. So I have stopped using Airplay.
I am not using any commercial streaming devices. My “HiFi” systems have dedicated Mac Mini’s running Roon driving BADA Alpha DACs. My Office and Guest Bedroom systems are “nearly HiFi” and each uses an RPi with an IQaudIO DAC+ running Roon Bridge. My other, “It’s just background music” zones (back-yard and workshop) have RPi’s with the IQaudIO DigiAmp+ HAT.
The home automation server controls everything it can of my AV systems. It controls and automates all switching and level controls. When I want to watch TV I press a button on my iPhone. Same for digital music (Roon) or analog. (I have a lot of vinyl.) It eliminates the need for 6 different IR remote controls for my main A/V system. Multiply that times all the AV systems in the house and it is a big win.
There is one thing I would like to do but can’t see how … yet. Indigo controls all the hardware but Roon controls the media. When I want to activate a zone I need to have Indigo turn on the power amp for that zone. Right now it requires me to manually turn-on the zone hardware with Indigo and then switch to Roon to select output to that zone. I’d like to have a mechanism whereby Roon can send a message to Indigo, preferably via TCP/IP, to indicate that a zone has been activated. I prefer it to be a net message rather than the OS’s internal IPC so that I could split the Roon server and Indigo (or whatever other home automation server you want to use) on separate platforms. It doesn’t need to say much, just, “zone X play,” or, “Zone X stop.” Those become events to the HA server and can be processed with whatever scripts I want to run. The goal is to get it down to where my guests can just use a single app (Roon UI) to control the music wherever they are on my property without having to learn all about the dependencies between the two servers, or the differences in playback hardware.