xAP Home Automation

An open standard for the home

Logitech Squeezebox

Squeezebox Classic showing outside temperature

Squeezebox is a popular range of network audio players with a considerable development community. One of the big attractions of these devices for home integration is that the players contain little intelligence; all the clever stuff is done by a software server, Squeezebox Server (formerly SqueezeCenter, formerly SlimServer) an open source project written in Perl. This makes the system highly portable and customisable.

While the latest products are moving towards colour LCD displays, the older products feature a highly-readable VFD display, still available on the Squeezebox Classic. This has been popular for a long time with home integrators since it can be used to display home status and alert messages while remaining a fully functioning music player.

xAP for Squeezebox Server

The xAP Plug-in for Squeezebox Server is a second generation, pure-Perl implementation of a xAP connector for this platform. The previous version, released in 2006 supported server software v6.x (SlimServer) and followed on from the original .Net version. This version has been revised to work with v7.x SqueezeCenter software, features significantly enhanced message display functionality as well as numerous other enhancements and bug fixes.

The plugin provides two-way xAP communication for Squeezebox Server with the following main functions:

  • Player power and volume control with xAP BSC
  • Player transport control
  • Player mixer control
  • Player message display
  • Playlist management
  • Server control
  • Access to low-level remote button and IR codes.

The manual page for the plug-in (included in the download) can be viewed online here.

Support, discussion etc of the plug-in can be found on the Slim Devices 3rd-party plugins forum using this thread or on the xAP Automation Yahoo! group.

v2.4.3 for Squeezebox Server 7.6

Jul 30, 2011 by Edward

The xAP Plugin has been updated to work with Squeezebox Server v7.6+.

v2.4 for Squeezebox Server 7.4

Oct 26, 2009 by Edward

The xAP Plugin has been updated to work with the newly rebranded Squeezebox Server v7.4. A link to the manual install download is on the right, but it can be automatically downloaded, updated and installed using the Extension Downloader functionality introduced in SqueezeCenter v7.3. To move to this automatic update mechanism, uninstall any manually installed version of the plugin (delete the xAP folder from the server/plugins directory), restart the server then add the URL:


to the Additional Repositories list on the Plugins tab of the settings page of the Squeezebox Server web interface.

Most of the changes in this version were concerned with the large number of server changes in 7.4 including the move to a newer version of Perl (v5.10). There were also a couple of bug fixes:

  • Fixed issue where the optional Param=[on|off] line in a transport pause command message was being ignored.
  • Fixed issues with tagged display message deletion.

There are some new features:

  • Added a 'xAP Hub' configuration option (default is 'External hub') to stop the plugin grabbing the xAP socket when running as a service.
  • Added new multi-server management logic - player BSC messages now indicate (using display text field) when a client has connected to a different server or www.mysqueezebox.com.


Dec 24, 2008 by Edward

This version has been updated to work with SqueezeCenter v7.3

Also a couple of bug fixes:

  • Fixed issues with artist, title, duration/remaining fields for remote streams.
  • Updates to work with new streaming sub-system.
  • Added Mixer.Cmd block to xAP-Audio.Audio.Event messages to indicate what changed.


v2.x Beta testers should delete the contents of the Plugins/xAP folder before installing.

When upgrading versions delete the old version first.

xAP Plugin for SqueezeCenter is downloaded as a single zip file. The plugin is packaged using the Slim Devices PluginBuilder tools so to install you just take the xAP folder that's in the downloaded zip file and copy it to the 3rd party Plugins folder (on Windows probably C:\Program Files\SqueezeCenter\server\Plugins). Restart the server and checkout the plugin's settings page on the web interface.

The Slim Devices' plugin installation and troubleshooting are on the Slim Devices Wiki.

To see that the plugin is functioning check that you can see xAP Heartbeat messages coming from the server (eg, using xFx Viewer). You should also see BSC info messages for each of the attached players.

There's an HTML manual page in the Docs folder of the xAP plugin folder and online here. There are also various example and test xAP messages in there too.


Feb 21, 2008 by Edward
  • Fixed bug where xAPBSC.Cmd messages level parameter were not being parsed correctly.


Oct, 2007 by Edward
  • Fixed case where Now.Playing shows wrong song data after player sync/unsync.
  • Fixed issue where BSC ID=nnnn was parsed incorrectly in xAPBSC.Cmd messages.
  • Added xAPBSC.Cmd state=toggle.
  • Improved BSC Event/Info selection/timing.
  • Send xAPBSC.Event when DisplayText changes.
  • Send xAPBSC.Event on power up due to xAP-Audio.Transport command.
  • Added alarm notifications to xAP-Audio.Schedule.Event messages.
  • Added simple alarm control (enable/disable all) via xAP-Audio.Schedule.
  • Removed last dependencies on legacy commands (which are broken in 7.2.1 23353).
  • Harmonised log4perl logger categories and added description to manual.