[No Longer Maintained] Squeezebox Integration (Logitech Media Server)

@xap, I only recently updated to your latest from a pre v2 release and been having some problems, but only this evening finally had the time to diagnose what I think the issue is.

I use player status as triggers and conditions to rules and since upgrading my rules were firing inconsistently. I have 6 SB players that are all sync'd although after a server restart, the player that is the master of the sync group may change. What I have now determined through testing is that only the status and track information of the master player updates in a group of sync'd players. The level, power and possibly other attributes of the slave players in the sync group will update when changes are made on LMS, but the status and track info only update on the master player. And this is why my rules were not firing consistently. It took a while for me to diagnose the actual cause.

As a workaround, I created a new rule to fire the refresh command on all 6 players anytime the status changes on one of the players. This ensures that regardless of which player changes as the master of the sync group, that all of the other players status will refresh in sync and my rules will fire correctly.

Thanks. Good bug description. I have replicated this bug so I will look into a fix.

1 Like

I have released v2.2 of the Squeezebox Connect app and v2.2.1 of the Squeezebox Player device.

There are a few fixes/improvements:

  • Synchronized players are now updated correctly regardless of which player in the sync group is the source of the status change. I have implemented a solution that should minimise unnecessary extra calls to LMS.**

  • Capability commands have been updated to match the Hubitat specification properly.***

    • SpeechSynthesis
      speak supports the optional volume and voice parameters.

    • AudioNotification
      playTextAndRestore, playTextAndResume, playTrackAndRestore, playtrackAndResume now behave consistently such that ...Restore commands will restore a previous playlist but in stopped state, ...Resume commands will restore a previous playlist playing from the time it was interrupted.

    • MusicPlayer
      resumeTrack will start playing the provided uri.
      setTrack and restoreTrack will set the current playlist to the provided uri (track or playlist) but will not start playing.

** If anyone still has issues related to status updates in sync groups please let me know.

*** I cannot find any clear documentation of what these commands are supposed to do so I've done my best to work out the intended behaviours. If anyone disagrees with these behaviours and can refer to some clear documentation I'd love to hear about it :slight_smile:

@MikeSas This version should work for you without needing extra refreshes.

3 Likes

Thx @xap! It seems to be working well now.

I tested out your new release with the refresh rule paused. At first when I used iPeng (IOS app for controlling SB players) to hit play on one of the synced slave players, the status on a Hubitat dashboard I created for testing only showed the Sync group master player updated to playing the others in the sync group including the one I had pressed play on still showed pause. I paused the music and then pressed play on one of the slave players using the device on the Hubitat dashboard and all of players in the sync group correctly reflected play. I continued playing and pausing players in the sync group using a mix of iPeng and the Hubitat and was never able to replicate what happened the first time. Wanted to share what happened, but for now I am going to assume it was just something about the way your new logic initialized and the state of my situation at that time. So I am considering it good to go, but will let you know if I notice anything else odd.

And thx again for all the work you have put into this. When I have some more time, I need to try out your playTextAndResume function. I was not considering using my SB's for audio notification as I did not want my active playlists to be replaced, but this changes that completely. Great addition!

1 Like

Hi I am a long time user of Squeezebox and would like to install your app on Hubitat.
Is there a Guide to install this app and how to configure it.
Many thanks

Hi. I recommend using the "Hubitat Package Manager" to install it. It's a great way to reduce errors when installing packages and also to get updates when they're available.

Here's a guide to installing HPM:

Once you've installed HPM then open the HPM app in Hubitat and select "Install" -> "Search by Keywords". Enter "squeezebox" for the search criteria and you should see "Squeezebox Connect" in the results. You can then install it via HPM.

Not sure if you have any Google speakers but you can install a plugin on your squeezebox server to make them into squeeze boxes. It is awesome because then you can stream music to them in addition to your squeeze devices

1 Like

Hi
many thanks for the Help I now have the players installed now I have to create a Dashboard to control them.
Has any one developed a dashboard they could share.
Google speakers look interesting.
Many thanks

@brianspranger
Is it the “Chromecast Bridge” plugin ??

Yes, that is correct

1 Like

I'm clearly doing something wrong. I've installed Squeezebox Connect, but when I use the controls for the device in the HE web UI for "Michael's LMS-HE", I'm not able to manipulate the player at all.

What simple step did I miss?

Heya, not sure what steps you have performed :slight_smile: Could you go into more detail on what setup options you chose and which player devices you selected?

Thanks.

I installed package manager, then squeeze connect. I configured squeeze connect with my IP and port. It found all my players and I selected one to work with. The device shows up in the UI and there is a multitude of controls, but none of them affect the player. Do I need to reboot my hub or anything before it will work?

Nope, you shouldn't need to reboot. Are there any messages in the hub logs that indicate a problem?

Guess no news is good news :wink: Hope it's working for you now.

I'm afraid that I haven't had any time to revisit this. I need to start again from the beginning when I find time, because as far as I know, I went about things as you've suggested.

Thanks for checking in.

I have released v2.3 of the Squeezebox Player device. Please update via HPM. This release includes:

  • Per-player preference to delay Text-to-Speech playback for cases where the beginning of the speech is getting dropped. It does this by incorporating a 2 second break at the start of the speech audio.

Squeezebox Player v2.4 is released. This adds a new "activity" attribute which supports the "activityState" attribute in the Google Home mediaState device trait. It indicates if the player is in use and allows Google Home to identify if short commands "stop", "volume up" etc. are intended for the player.

To use this feature you need to be using the excellent Google Home Community integration rather than the built-in one. Define a device type to use for your players and add the Media State trait (I also added On/Off, Volume and Transport Control states which integrates the players' functions with Google more completely).

I'm thinking of removing the child power switch device for players. I implemented it for use by the built in Google home integration so players don't have to be directly included (as they are shown as lights due to their level attribute). However the Google Home Community integration is much more capable and doesn't require this extra device.

Is anyone using this feature? Please let me know if you are using it and would like me not to remove it!

I'm not using it. :slight_smile:

1 Like