Monday, November 19, 2018

The limited 0.1.2 test is now more or less complete. A handful of dedicated and super-patient testers undertook to verify that the significant issues from v0.1.1 were resolved. They and some others who just couldn't wait to get involved (!) went on to test actual functionality resulting in the finding and squashing of a number of bugs;

  • Always check the version on LMS startup (plugin)
  • Removed double-declaration of $LMSaddress var during init (plugin)
  • Suggested port 7777 for proxy (plugin / docs)
  • Pick version number up from install.xml (plugin)
  • Fixed a bug with undef $dynamicIP if setting switched off (plugin)
  • Fixed an issue preventing ports >9999 being used (db)
  • Added some extra debugging (plugin)
  • Fixed a bug logging to fail when LMS query fails (plugin)
  • Fixed an issue with database field size preventing users with multiple devices completing commands. (db)
  • Added more device names (skill)
  • Added German Skill version for localisation (skill)

There's a few more tasks to be completed before v0.1.3 release;

  • Pick up non-standard LMS port from prefs or from user input
  • Complete refactoring of plugin<->skill communications code to re-implement HTTPS support


Built in to the skill for the development phase is tracking of command round trips to help with optimisation of code to minimise latency. Now that users are getting the plugin correctly installed and working, some data is being generated. Here are some of the key observations;

  • 530 commands were issued by 13 users.
  • Omitting failed transactions due to bugs, there were 400 completed commands
  • The overall average round-trip time for commands was 1289 ms
  • The average round-trip time by command type was;
    • GetID: 51 ms
    • Register: 119 ms
    • QuerySelectedPlayer: 863 ms
    • SelectPlayer: 1088 ms
    • ListDevices: 1048 ms
    • Resume: 1814 ms
    • Pause: 1857 ms


This is pretty much in line with expectations in that the first two don't require any LMS interactions and the last two have 2x LMS queries per command. These figures are well within the allowed 10 second interval for skill responses but it would be nice to get them down further. As a matter of interest, here are the shortest and longest round trip times for each command in milliseconds;

  • GetID: 2 / 758
  • Register: 2 / 2297
  • QuerySelectedPlayer: 312 / 2318
  • SelectPlayer: 346 / 2753
  • ListDevices: 313 / 4324
  • Resume: 363 / 4572
  • Pause: 495 / 4822

There's obviously a significant differential which would be based on end-user connection speeds.



Login Form

About Hab-Tunes

Hab-Tunes is an in-development skill for the Amazon Echo that allows voice control of Squeezebox devices. This site is intended to document the skill development and help give some idea of progress.

Follow Updates

Search #habtunes on twitter

Want to Help?

If you can contribute time, skills or ideas, find out how you can get involved.