• Alexa for Squeezebox

    Breathing new life into your LMS.
    Add Alexa voice control to your Squeezeboxes.

    Learn More See it in action
  • Currently in Alpha

    We're almost feature complete.
    Beta opening soon...

  • 1
  • 2
Built for Alexa

Built for Alexa

All the power of Alexa, all the flexibility of Squeezebox! A custom skill facilitates voice control for transport, content selection
Built for SqueezBox

Built for SqueezBox

Squeezebox is an amazingly flexible and resilient platform. Our custom plugin links to Alexa to add voice control.
Built for Simplicity

Built for Simplicity

An LMS plugin linked to an Alexa skill. Simple. Easy. Effective.
  • 1
Tuesday, February 25, 2020

Alexa for Squeezebox

These days, it seems that voice assistants are everywhere. In stand-alone devices, in a/v equipment, in household appliances, cars and more. Beyond a gimmick, voice applications are evolving to a point where they are approaching usefulness.

But what about legacy technology? Squeezebox was a great platform. There's still plenty about and there's a healthy second-hand market. The LMS is still viable and supported by a great community. 

The Hab-Tunes project seeks to breath new life into older technology by integrating voice control. The first such endeavor is Alexa for Squeezebox - an Alexa skill and LMS plugin that allows you control your Squeezebox by voice.



Comprising a standard Alexa skill and LMS plugin, it's familiar and easy to install, configure and use.



With https used when available, and no need for open ports locally, Alexa for Squeezebox helps keep the ner-do-wells at bay.



Developed over 2 years, with over 50 testers from around the world, Alexa for Squeezebox is stable and reliable.



With ongoing maintenance and feature additions, you can shape the direction and request functionality you'd like to see.


The ambition is to add Alexa voice control to the LMS
and Squeezebox platform in a simple and intuitive way.
Find out more about the design philosophy, or dive right in. Learn More

Get Started

It's All About the Music


Simplicity and Flexibility.
All the hallmarks of Squeezebox - Now with added voice control.

Volunteer Testers


Extensive Alpha phase is ending, with Squeezebox users from around the world contribuiting time and ideas.

Ready for the World


With German localisation well advanced, Alexa for Squeezebox can be ported to any supported Alexa language.

Recent Blog Posts

Hmm. This is not easy.

One of the main issues arising from user testing on v0.1.1 was the fact that the LMS plug-in was not shutting down properly and thus locked LMS and prevented it from closing cleanly.

Looking into this in more detail, I found the that perl HTTP::Daemon was misbehaving and refusing to stop when asked politely. I changed to the Mojolicious Mojo::Server running as a deamon and this appeared to be much better behaved, facilitating clean LMS shutdowns.

In testing prior to release, however, it seems that's another issue raising it's head: the http daemon seems to be interfering with squeezebox connections to the LMS.

Now, the daemon is an essential part of the architecture as it listens out for commands from the skill and processes them, making requests to the LMS etc.

When the Mojo::Server is switched on, clients sometimes won't connect and, if they do, they appear and disappear from the LMS with alarming frequency. I've even had scenarios where a player is connected to an LMS and playing music but the LMS denies all knowledge of it's existence. Switching off the plugin (and hence the httpd proxy) returns operations to normal.

I now need to switch out Mojo::Server and go for another http daemon to ascertain if it's that particular implementation or something else that's causing the trouble.

In addition, it's now clear that there's another problem - I can't make HTTPS requests from within the plugin :-(

The plugin design relies on http requests from the skill to the proxy which then makes https requests back to the skill to determine what commands are required. In this way, all communications, apart from an init command, would take place over https.

However, it transpires that HTTPS support for the version of perl used in the LMS  requires the older Crypt::SSLeay library which is not included. Unfortunately, this library requires compiled dlls per platform and perl version. This introduces a significant layer of complexity for plugin distribution.

I've dropped back to http communications throughout which is far from ideal. This is yet another area that requires further work.

I must say, I'm finding it frustrating to work in perl. I think the main issue is that I'm trying to work inside the LMS runtime instance and that imposes limitations and restrictions.

It's going to be several more days if not weeks before I have something stable enough to release, I think.


Get Involved

Right now, site membership at Hab-Tunes.com is open. However, membership does not accrue any benefits. Participants in the ongoing closed alpha need to be members, and those who will participate in the forthcoming Beta cycle will also require membership.
Details on how to get involved can be found here