Snapcast Server, Snapcast Client and librespot repository

Tags: #<Tag:0x00007f73b4887028> #<Tag:0x00007f73b4886e98> #<Tag:0x00007f73b4886d30> #<Tag:0x00007f73b4886bf0>

snapcast_client wont work on synology DSM anymore.
This needs further investigation™.

Just saw that badaix will make the server.json configurable. Great news :slight_smile: Looking forward to 0.19 release.

However, now I’m trying to make it work somehow for the current release.
I was thinking of using NodeRed JsonRPC Node to send the latency data for the client after every restart. But I have not yet been able to make it work.
Any other idea for this?

Got the solution. With the TCP Node its very “easy” to set the settings at restart of the addon.

One TCP Listener to detect when it reconnects.
And a TCP Request Node sending the raw JSON RCP Data.

Hi! Did anyone ever attempt or manage to integrate mopidy over the mpd integration as an entity into HA?

I would like to control what and when mopidy plays something via node-red(used for an alarm-clock), but I can’t find a way to talk to mopidy directly. I noticed that the docker-img doesn’t contain the mpd-extension and doesn’t forward port 6680 to the host either, so I can’t even attempt to send some data over the websocket api.

Maybe someone came further and found a solution to this :grin:
If not I will probably head over to git and maybe try to ask at the repo.

(Sorry to post in this topic, I just didn’t find any other place where people were using the edge version of the addon)

EDIT: Solved!

1 Like

Hi Raphii, are you planning for a new release that includes the option so save the config user editable now its included in the 0.19 release?

Hi!
Sure, i think in about 1-2 weeks :slight_smile:
Feel free to submit a pull request :wink:

Done :slight_smile: Works like a charm

1 Like

awesome! Your work has been merged <3 Thanks a lot!

1 Like

Hello,
Thank you very much for great hassio snapcast addon. I have one problem, when trying to use mopidy-Iris web client, which has build in support for snapcast mixer (i.e. allows to control snapcast clients volume). I do use hassio Mopidy addon from here.

If you enable snapcast support in Mopidy it will crash snapcast server with:

2020-04-25 21-04-28 [Notice] (handleAccept) ControlServer::NewConnection: 192.168.1.99
terminate called after throwing an instance of ‘nlohmann::detail::type_error’
what(): [json.exception.type_error.316] invalid UTF-8 byte at index 95: 0xC0
/run.sh: line 43: 224 Aborted (core dumped) /usr/bin/snapserver -c /etc/snapserver.conf
[cmd] /run.sh exited 134
[cont-finish.d] executing container finish scripts…
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.

It seem to be linked to json library used in snapcast server: https://github.com/nlohmann/json/issues/1195

So to me it seems more like mopidy/iris issue, but I can imagine this one will be nightmare to solve - too many developers streams involved. :slight_smile: So first I am trying here - did anyone get into same issue?

Thank you.
Litin

Hi,

I have ended up in a issue with the SnapClient (see the log below) I am running latest and greatest version 0.109.4 (samme issue on 108) on a rpi4 also running the snapcast server and librespot. however I cant seem to figure out how to resolve the error I receive and why my minijack wont work…

using built-in audio digital Stereo (IEC958):

[s6-init] making user provided files available at /var/run/s6/etc…exited 0.
[s6-init] ensuring user provided files have correct perms…exited 0.
[fix-attrs.d] applying ownership & permissions fixes…
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts…
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Start Snapclient…
2020-05-05 10-04-22 [Info] Latency: 0
2020-05-05 10-04-22 [Notice] Connected to 192.168.1.9
2020-05-05 10-04-22 [Info] My MAC: “02:42:ac:1e:21:01”, socket: 5
2020-05-05 10-04-22 [Info] ServerSettings - buffer: 1000, latency: 0, volume: 100, muted: 0
2020-05-05 10-04-22 [Info] Codec: flac
2020-05-05 10-04-22 [Notice] sampleformat: 44100:16:2
metadata:{“STREAM”:“SpotifyConnect”}
ALSA lib dlmisc.c:283:(snd_dlobj_cache_get0) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ((null): Error loading shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so: No such file or directory)
2020-05-05 10-04-22 [Err] Controller::onException: Can’t open default PCM device: No such device or address
2020-05-05 10-04-24 [Warn] timeout while waiting for response to: 2, timeout 2000
2020-05-05 10-04-24 [Err] Exception in Controller::worker(): Can’t open default PCM device: No such device or address

With the cleint using the “Default” output:
[s6-init] making user provided files available at /var/run/s6/etc…exited 0.
[s6-init] ensuring user provided files have correct perms…exited 0.
[fix-attrs.d] applying ownership & permissions fixes…
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts…
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Start Snapclient…
2020-05-05 10-13-35 [Info] Latency: 0
2020-05-05 10-13-35 [Notice] Connected to 192.168.1.9
2020-05-05 10-13-35 [Info] My MAC: “02:42:ac:1e:21:01”, socket: 5
2020-05-05 10-13-35 [Info] ServerSettings - buffer: 1000, latency: 0, volume: 100, muted: 0
2020-05-05 10-13-35 [Info] Codec: flac
2020-05-05 10-13-35 [Notice] sampleformat: 44100:16:2
metadata:{“STREAM”:“SpotifyConnect”}
ALSA lib dlmisc.c:283:(snd_dlobj_cache_get0) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ((null): Error loading shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so: No such file or directory)
2020-05-05 10-13-35 [Err] Controller::onException: Can’t open default PCM device: No such device or address
2020-05-05 10-13-37 [Warn] timeout while waiting for response to: 2, timeout 2000
2020-05-05 10-13-37 [Err] Exception in Controller::worker(): Can’t open default PCM device: No such device or address
2020-05-05 10-13-38 [Notice] Connected to 192.168.1.9
2020-05-05 10-13-38 [Info] My MAC: “02:42:ac:1e:21:01”, socket: 5
metadata:{“STREAM”:“SpotifyConnect”}
2020-05-05 10-13-38 [Info] ServerSettings - buffer: 1000, latency: 0, volume: 100, muted: 0
2020-05-05 10-13-38 [Info] Codec: flac
ALSA lib dlmisc.c:283:(snd_dlobj_cache_get0) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ((null): Error loading shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so: No such file or directory)
2020-05-05 10-13-38 [Notice] sampleformat: 44100:16:2
2020-05-05 10-13-38 [Err] Controller::onException: Can’t open default PCM device: No such device or address

Anyone knows what I am doing wrong?

I have the same issue and opened a ticket for that:
https://github.com/raph2i/hassio-addons/issues/4
it might be a problem of the supervisor

Yes there must be some/something causing it in the supervisor module: https://community.home-assistant.io/t/audio-not-working-after-installing-hass-io-in-docker/178858/3

Whats the progress on the TTS? Can you share you config?

Could you share your HA config for the webradio? i have added the webradio URI in mopidy and also the location of the sink but no sound.

Alright, got all 3 add-ons built and started on hassio. I set host in configuration.yaml to the ip on the (pi) running the hassio, this is the log from snapcast client:

2020-05-11 15-42-21 [Err] Exception in Controller::worker(): resolve: Host not found (authoritative)
2020-05-11 15-42-21 [Err] Error in socket shutdown: Bad file descriptor

EDIT: I changed my config on snapcast client to

snapclientopts: ‘-h 192.168.3.107’

Now… i’m stuck again,

Start Snapclient…
2020-05-11 17-17-36 [Info] Latency: 0
2020-05-11 17-17-36 [Notice] Connected to 192.168.3.107
2020-05-11 17-17-36 [Info] My MAC: “02:42:ac:1e:21:03”, socket: 5
2020-05-11 17-17-36 [Info] ServerSettings - buffer: 1000, latency: 0, volume: 100, muted: 0
metadata:{“STREAM”:“SpotifyConnect”}
2020-05-11 17-17-36 [Info] Codec: flac
2020-05-11 17-17-36 [Notice] sampleformat: 44100:16:2
ALSA lib dlmisc.c:283:(snd_dlobj_cache_get0) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ((null): Error loading shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so: No such file or directory)
2020-05-11 17-17-36 [Err] Controller::onException: Can’t open default PCM device: No such device or address

**EDIT:

Added Mopidy to my setup now the new hold up, I added this to mopidy conf:

  • name: audio/output
    value: >-
    audioresample ! audio/x-raw,rate=44100,channels=2,format=S16LE !
    audioconvert ! wavenc ! filesink location=/share/snapfifo/mopidy

Result:

usage: mopidy [-h] [–version] [-q] [-v] [–save-debug-log] [–config FILES]
[-o OPTIONS]
unrecognized command: !

This is the same issue I just had, still getting unrecognized command (i copied from your setup)

Also getting the ALSA lib error which seems to be an issue with hassio_audio. I tried this Supervisor add-on with no luck. I would really appreciate a fix!

Can someone guide me to install mopidy?
The edge repository tells me that it is not available for my system.

Try this repository on add-on store: https://github.com/kentloving/hassio-addons

Trying to update to Snapcast Server v0.20.0 … shouldn’t rebuild do the trick? Seems like its still pulling the 0.19.0 when I do that.

That is strange but it happened to me as well - even there is newer version of snapcast already available in Alpine edge repos. I solved this by opening bash shell to this docker instance and updating snap packages manually using apk. If someone knows why rebuild is not using latest sources automatically?