Install squeeze

From xPL
Jump to: navigation, search

A Logitech Media Server (a.k.a. SqueezeCenter) can be controlled in various ways, including a Telnet Command-Line Interface (CLI) or the xPL plugin. Installation instructions for Linux are provided on the slimdevices wiki.

This xPL client allows to control a Logitech Media Server running on a machine where there is no xPL hub installed. The Media Server will be controlled via the CLI. This doesn't make use of the legacy xPL control interface.

Before all, make sure you have installed an xPL hub.

Activate xPL

Browse to the web interface on yourServer:9000. Click on Settings on the bottom right. Selcet the tab Plugins and then enable xPL Interface.

Restart the server:

ssh root@yourServer.local
service squeezeboxserver status
service logitechmediaserver status
service logitechmediaserver restart
exit

Check the xPL messages:

SCRIPTS_BASE_DIR=/Users/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-monitor.pl -vf

Play with the web interface controls and check that the corresponding messages are broadcasted.

Install xPL squeeze device

Download the xPL squueze script.

Move the script to xPL scripts directory:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
mv xpl-squeeze.pl $SCRIPTS_BASE_DIR
chown control:users $SCRIPTS_BASE_DIR/*.pl
chmod 775 $SCRIPTS_BASE_DIR/*.pl

Test xPL squeeze device

Test it on a BeagleBone:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-squeeze.pl -h
$SCRIPTS_BASE_DIR/xpl-squeeze.pl -v -n test

Open a 2nd terminal window (on any machine with xPL installed) and monitor the xPL protocol:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-monitor.pl -vf

Open another terminal and control the SqueezeCenter:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.controller -c slimserv.request command=list
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.StudySqueezeslav -c slimserv.request command=status
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.StudySqueezeslav -c slimserv.basic command=play
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.StudySqueezeslav -c slimserv.basic command='power 0'

Launch the xPL squeeze device at startup

The xPL SqueezeCenter controller is to start after the xPL hub.

Ubuntu

On Ubuntu, the xPL squeeze device starts-up once xpl-hub_started has been emitted.

Edit /etc/init/xpl-actions.conf: Edit /etc/init/xpl-squeeze.conf:

################################################################################
# xPL SqueezeCenter controller
#
description "xPL squeeze"
version     "1.0"
author      "Francois Corthay"

#-------------------------------------------------------------------------------
# Configuration variables
#
env SCRIPTS_DIR='/home/control/Documents/Controls'
env SCRIPT_NAME='xpl-squeeze.pl'
env PARAMETERS='-n home'

#-------------------------------------------------------------------------------
# Start and stop conditions
#
start on xpl-hub_started
stop on shutdown
respawn
setuid control
setgid users

#-------------------------------------------------------------------------------
# Start daemon
#
exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS

Start the device and test it:

su root
service xpl-squeeze start
service xpl-squeeze status
initctl list | grep xpl

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.StudySqueezeslav -c slimserv.basic command=play

Mac OS

On Mac OS, the xPL actions device starts-up later than the hub.

Edit /Library/LaunchDaemons/xpl-squeeze.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>xPL SqueezeCenter controller</string>
    <key>OnDemand</key>
    <false/>
    <key>UserName</key>
    <string>control</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/control/Documents/Controls/xpl-squeeze.pl</string>
      <string>-n</string>
      <string>home</string>
      <string>-w</string>
      <string>25</string>
    </array>
  </dict>
</plist>

Start the device and test it:

su root
launchctl load /Library/LaunchDaemons/xpl-squeeze.plist

SCRIPTS_BASE_DIR=/Users/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -d dspc-squeeze.StudySqueezeslav -c slimserv.basic command=play