SlimProto Player - Squeezebox Radio not found, zero logs or hints

Got a Squeezebox Radio here. Works well although not using it a lot. It is in the same subnet as HA. No other software related to Squeezebox or LMS is running atm. Followed the instructions on SlimProto (Squeezebox players) - Home Assistant. Nothing… Restarted HA. Nothing.
Added

media_player:
media_source:

Restarted. Nothing. No Squeezebox as output on the media-browser page.
Nothing in the logs that run on warn level.

Did I miss something?

1 Like

Go to Settings > Devices & Services then manually add a Slim Proto (Squeezbox Players) integration.

Thanks, yes that is what I did before.

Apparently on the Logitech device you have to open “Remote Music Library”. Then it can be controlled. At least, that works for Docker Hub. Still cannot get the HA integration working even though the Logitech device is being found now.

Hmm wait…does this integration use port 9000 like that Docker image does by default…the Portainer port?

Stopped Portainer. Also does not work. The Logitech device does not go further than “Connecting to [HA-servername]”

Maybe there is another port conflict. Need to know the ports this integration uses. Cannot find them in source.

Port scan on a quick HA container gives 3483, 9090, 9091. There should be no conflict, not even with Portainer.

same. following.

The setup fails for me with the following error:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 339, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/slimproto/__init__.py", line 19, in async_setup_entry
    await slimserver.start()
  File "/usr/local/lib/python3.9/site-packages/aioslimproto/server.py", line 60, in start
    self._socket_servers += await self.cli.start()
  File "/usr/local/lib/python3.9/site-packages/aioslimproto/cli.py", line 120, in start
    await asyncio.start_server(
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 94, in start_server
    return await loop.create_server(factory, host, port, **kwds)
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1506, in create_server
    raise OSError(err.errno, 'error while attempting '
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 9091): address in use

Note that before a reboot the port it attempted to bind was 3483, so I have no clue what it is trying to do. Should it be binding to any port at all?

[edit] Found the reason, there’s a server called slimserver started, that wants to use ports 3483, 9090 and 9091. Seems to be hardcoded at the moment. Opened an issue at: Fails on setup because port is in use · Issue #39 · home-assistant-libs/aioslimproto · GitHub

Just came across this integration and thought I might get some renewed life out of two old Squeezebox Radios I have lying around. But I too cannot get it to work.

Similar results…nothing when adding the integration. I can add the IP to HA manually in the Squeezebox settings and then the entity appears in HA, but Squeezebox spins for a while and fails to connect. And the entity doesn’t appear to do anything…state, volume, nothing.

Also not finding much in the way of examples etc through internet searches.

I use Docker Container, does it need to have those ports imported (3483, 9090 and 9091)?
Edit: Forgot my container is using the host networking, so that shouldn’t be it in my case…

Anyone had any luck at all?

I realized I forgot to check the log, but just noticed it’s getting spammed with these messages:

2022-10-25 20:28:16.065 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback SlimClient._process_stat_stmt(b'\x00\x00\x0...0\x00\x00\x00')
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/aioslimproto/client.py", line 580, in _process_stat_stmt
    ) = struct.unpack("!BBBLLLLHLLLLHLLH", data)
struct.error: unpack requires a buffer of 49 bytes

Hi!

I just took the time to check out this integration. After adding the integration I was able to connect the player (Sqeezebox Radio, Firmware: 7.7.3-r16676) to HA by using its IP (on the Radio, Settings → Advanced → Networks → Remote Library).

However, I am unable to play any media. I am testing with service “service: media_player.play_media” and only getting “Unsupported Content Type” errors (in log, depending on content):

  • aioslimproto.errors.UnsupportedContentType: Player does not support content type: audio/mpeg
  • aioslimproto.errors.UnsupportedContentType: Player does not support content type: audio/mp3

Also, it seems either the integration or my device wont support HTTPS streams:
WARNING (MainThread) [aioslimproto.client] HTTPS stream requested but player does not support HTTPS, trying HTTP instead but playback may fail.

In an attempt to play some notifications in the house with existing equipment, I wanted to use some SB devices.

Yesterday I tried my SB Radio with no luck, and today the same result with the good old SB Classic.

My attempts consist of:

  • stop the LMS docker container to prevent conflicts
  • add the ports to my docker-compose file to expose the ports (9090, 9091,3483 both TCP & UDP)
  • add SlimProto play integration
  • add Radio Browser
  • add PicoTTS (text to speech)
  • reset client devices to default in my attempts (to prevent old config from LMS)

I see the client connect in HA, as the integration does show the client as a device with one entity, however I cannot get it to play anything.
Both client devices cannot connect to anything, and the docker logs show different errors, alike the ones in this thread:

2023-01-31 21:07:32.944 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback SlimClient._process_stat_aude(b'\x00\x00\x0...0\x00\x00\x00')
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/aioslimproto/client.py", line 504, in _process_stat_aude
    (spdif_enable, dac_enable) = struct.unpack("2B", data[:4])
struct.error: unpack requires a buffer of 2 bytes
2023-01-31 21:07:33.459 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback SlimClient._process_stat_aude(b'\x00\x00\x0...0\x00\x00\x00')
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/aioslimproto/client.py", line 504, in _process_stat_aude
    (spdif_enable, dac_enable) = struct.unpack("2B", data[:4])
struct.error: unpack requires a buffer of 2 bytes
2023-01-31 21:08:30.428 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [1875373336] Player does not support content type: audio/aac
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/slimproto/media_player.py", line 194, in async_play_media
    await self.player.play_url(media_id, mime_type=to_send_media_type)
  File "/usr/local/lib/python3.10/site-packages/aioslimproto/client.py", line 343, in play_url
    raise UnsupportedContentType(
aioslimproto.errors.UnsupportedContentType: Player does not support content type: audio/aac

Not sure if using the SB’s in HA are going to be a succes ?

It would be great to get use out of them without running the whole LMS. But yeah, I pretty much gave up.