A variety of useful helper scripts for quickly setting up services in an LXC can be found here
Category: Proxmox
Logitech Media Server
Sure, multiroom sound systems are a great addition to your home. The ability to play the same music or podcast in every room is a great feature. Take a look at the big names, ebay and thrift stores are littered with the ghosts of unsupported first gen systems from the big players. They are expensive investments and often fall foul of being abandoned by the manufacturer after they are no longer able to make any money on them.
Enter Logitech Media Server and options for playing the streams in software or hardware (squeezebox) Its been around forever, has a ton of open source community support. Logitech have discontinued there cloud based service, however this can still be used to stream local music, tunein, bandcamp and more.
Once you have downloaded and installed LMS from the link above, confirm the necessary ports have been allowed through your server firewall if required.
TCP 3483 squeezebox stream
TCP 9000 Server web interface
TCP 9090 CLI e.g Squeezer
Open a web browser window and enter the address of your LMS e.g http://10.0.0.2:9000
(If using windows you can find this in the information tab of LMS)
You should see a page similar to the following in your browser:
Main parts of the interface
Player: This is the output device that will actually play the audio. It is a drop down list and if nothing is present, you dont have any audio players connected and won’t be able to play anything.
Volume: The volume level of the currently selected player.
Transport: The Play, Pause, Next Track, Prev Track, Loop, Etc… Transport controls of the currently selected player
Source: The source audio that you wish to play, can be local MP3, Internet radio or other souces depending on plugins installed
Settings: (bottom right) Allows you to add and remove plugins, scan for local music and various other house keeping tasks.
Squeezebox players
You will need a player to output the audio stream from the Logitech Music Server. I have listed a few we have had direct experience with, there are many others.
A dedicated squeezebox player from somewhere like ebay or facebook marketplace, search for squeezebox
Squeezelite-X available from the microsoft store.
PiCorePlayer for the raspberry pi , Tested with Pi Zero and Model 3 , both work fine.
Squeezelite-esp32 for the esp32. We build these players and have a few for sale.
SB Player by angry goat for Android and chromebooks in the playstore (small one time fee)
Controllers
You will need some way of controlling the playback, volume and audio source of a player. This can be achived in a multiple of ways. A couple are mentioned here.
via LMS webpage on port 9000 (in our example that would be http://10.0.0.2:9000)
Android google play search for app named squeezer.
Squeezer Configuration page on an Android device
Proxmox notes
This section contains notes for installing LMS on proxmox, may be outdated or incorrect
Create a new LXC container on Proxmox, left all as defaults apart from unsetting the ‘unprivileged container’ checkbox.
Get things up to date
apt update
apt upgrade
Install required dependencies
apt install perl libssl-dev
Download the package
Downloaded latest stable Squeezebox server image from https://lms-community.github.io/lms-server-repository/
or
wget http://downloads.slimdevices.com/LogitechMediaServer_v8.5.0/logitechmediaserver_8.5.0_amd64.deb
Install the package
dpkg -i logitechmediaserver_8.5.0_amd64.deb
(at this point ran into error as I’d missed the perl installation, so installed perl and ran apt --fix-broken install
as prompted, the installation was then complete)
make sure to ceate directory for playlists and make writeable for example
mkdir /var/lib/squeezeboxserver/playlists
cd /var/lib/squeezeboxserver/playlists
chown squeezeboxserver playlists
chgrp nogroup playlists
update settings in logitech media server
Control From Home Assistant
#--------------------------------------------------------------------
# Start playing playlist named classical on squeezebox with
# IP address 10.0.0.39
#--------------------------------------------------------------------
- id: 'TurnOnRadioStation1'
alias: TurnOnRadioStation_1
trigger:
- platform: event
event_type: "MY_CUSTOM_EVENT"
condition: []
action:
- service: rest_command.lms_command
data:
p0: "playlist"
p1: "play"
p2: "classical"
player: "10.0.0.39"