Sending TTS via Snapcast does not play messages

Dear All,

I am building multiroom with Snapcast. At present moment I want to send TTS notifications from my add-on for HA to mediaplayers in different locations. I run HA on NUC under Hassos, Snapcast server is ran on another NUC under Debian dedicated for computation purposes, where I run lots of other servers. Every client is a RPi4 with a speakers and a mic. I did Install clients and server and made these running. From Mobile app I can see clients online, they connect to the server automatically, when server goes offline I can see it no problem - there is no indication that something is wrong with the server or clients. I also tested clients speakers with ‘aplay’ to see how these work with ALSA and sound is played. But, when I try to run a test from the HA to send a TTS notification of simple type:

alias: 'Voice command, test'
sequence:
  - service: tts.google_say
    entity_id: media_player.snapcast_group_622aea4b_2a61_1eea_fdfe_7c2d6f8aeedf
    data:
      message: |-
        Test
      language: en
mode: single

no sound is played on ether of the clients speaker’s. Am I doing something wrong?

I see something is missing, because I do not see the actual player connected to Snapcast server, as in the case of Mopidy-Snapcast schema, but cannot figure out what exactly I have to add…

I also have installed Mopidy servers on every client, and run a ‘special’ instance of a Mopidy server on that NUC togather with Snapcast server, as the manual suggests, but do not see how these MPD servers correlate to the TTS I am trying to implement…

Would anyone share an experience with all of us?

Thanks in advance!

You can’t play TTS on the snapcast player, you can’t play anything at all directly on the snapcast player. You need to play the TTS/audio on a mopidy player that is a source of the snapserver and then change the source of the snapclients that you want it to be played on to the mopidy player that you chose to play the TTS/audio from.

Snapclients are not able to play anything by themselves.
You have a snapserver, that has multiple sources (e.g. Spotify, a mopidy player, Youtube, etc) configured. Snapserver makes these sources available to the snapclient and handles the syncing in the differwnt rooms. Now if something is played on one of these sources, the snapclients can play this sound by changing their source to the playing one.

Yes, exactly as I have written above - I see that the part equivaletnt to Mopidy in Snapcast-Mopidy patern is missing, but I do not know what to replace it with - my general question was - what should I use instead of Mopidy to play TTS throught the Snapcast?

Or, If you know how to make Mopidy play TTS, would you share it with us, please, since, as I have discovered, it is a very needed topic.

Thanks!

Why use something else when you have already setup mopidy? What sources did you configure on your snapserver?

As you did above, but choosing a mopidy media_player.xxx entity instead of a snapcast media_player.xxx entity. I have a separate Mopidy Server instance for each room and one for TTS only.
When I want to play TTS, I change the source of the snapclients in the rooms that should play it to the source TTS (which in snapserver is configured to read the audio stream from the Mopidy TTS instance), then I play the TTS on the mopidy TTS instance, which in turn will then be played on all the snapclients that have TTS as the source. After the TTS finished, I change the source back to what it was before the TTS message.

1 Like

Thanks for your help. I see what you mean, but yet cnnot figure out exact steps to be done. Theoretically I understand, that ‘pipes’ connect to a server. Every ‘pipe’ is used to write certain type of a data to snapfifo. I have to describe all ‘pipes’ in SNAPSERVER_OPTS, but practically I am still confused what params to pass to SNAPSERVER_OPTS… At the moment my /etc/default/snapserver file looks like this:

START_SNAPSERVER=true
SNAPSERVER_OPTS=""

So, as I understand, no ‘pipes’ are connected to it, so It will not play anything, since nothing comes into snapfifo. But what should I put there to make TTS write into snapfifo?

So, you say you have Mopidy instance to be run for TTS. What is the config for that instance to be used? Then I have to tell SNAPSERVER_OPTS it’s pipe parameters, right? What is the config for that pipe?

Thanks!

How do you run Snapserver on the NUC? As a docker container or bare metal on the machine?

Can you please show the configuration of the Mopidy instance running on the same NUC as snapserver?
Do you see any sources available on the snapclients?

As a ‘bare metall installation’, I start it from the command line calling a script

 /etc/init.d/snapserver start

Just now I have attempted to launch snapserver with different options,
ex:
SNAPSERVER_OPTS="-d -s pipe:///tmp/snapfifo?name=mopidy&sampleformat=48000:16:2&codec=flac -s pipe:///tmp/snapcast_tts?name=TTS&sampleformat=48000:16:2&codec=pcm"

but discovered, that no metter what I give as an option string except “”, the server is not accessible to the snapclients anymore…

I also have discovered, that in my /etc/snapserver.conf I have only one source declared:
source = pipe:///tmp/snapfifo?name=default

So I assume, my ‘general’ mopidy server should be appealing to this name somwhere in it’s config…

And the config for my ‘general’ Mopidy instance is:

wrong data was here

How to see the avaialble scources on a snapclients? What is the command for that?

Thanks!

I am sorry, disregard the data from the previous messages. It is all so confusing. I was obtaining that data using: ‘mopidy config’, but actually I should have used: ‘sudo mopidyctl config’. I am sorry If you have wasted some time digging into the wrong data. So the ‘sudo mopidyctl config’ gives this for the major instance:

Running "/usr/bin/mopidy --config /usr/share/mopidy/conf.d:/etc/mopidy/mopidy.conf config" as user mopidy
[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
max_tracklist_length = 10000
restore_state = false

[logging]
verbosity = 0
format = %(levelname)-8s [%(threadName)s] %(name)s %(message)s
color = false
config_file =

[audio]
mixer = software
mixer_volume =
output = audioresample ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo
buffer_time =

[proxy]
scheme =
hostname =
port =
username =
password =

[youtube]
enabled = true
youtube_api_key =
threads_max = 16
search_results = 15
playlist_max_videos = 20
api_enabled = false
autoplay_enabled = false
strict_autoplay = false
max_autoplay_length = 600
max_degrees_of_separation = 3

[scrobbler]
enabled = false  ; Extension disabled due to config errors.
username =   ; Must be set.
password =   ; Must be set.

[radionet]
enabled = false  ; Extension disabled due to config errors.
language = pl
min_bitrate = 96
favorite_stations =   ; Must be set.

[musicbox_webclient]
enabled = true
musicbox = false
websocket_host =
websocket_port =
on_track_click = PLAY_ALL

[muse]
enabled = true
mopidy_host =
mopidy_port =
mopidy_ssl = false
snapcast_host =
snapcast_port =
snapcast_ssl = false

[mpris]
enabled = true
bus_type = session

[mowecl]
enabled = true
theme_type = light
background_color = #fdf6e3
text_color = #002b36
primary_color = #268bd2
seek_update_interval = 500
search_history_length = 10
disable_dnd = false
small_screen = false
key_play_pause = space+Control
key_next_track = ArrowRight
key_previous_track =
key_rewind_track = ArrowLeft
key_volume_up = ArrowUp
key_volume_down = ArrowDown

[mobile]
enabled = true
title = Mopidy Mobile on $hostname
ws_url =

[local]
enabled = false  ; Extension disabled due to config errors.
max_search_results = 100
media_dir =  ; Must be set.
scan_timeout = 1000
scan_flush_threshold = 100
scan_follow_symlinks = false
included_file_extensions =
excluded_file_extensions =
  .cue
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .pdf
  .png
  .txt
  .zip
directories =
  Albums                  local:directory?type=album
  Artists                 local:directory?type=artist
  Composers               local:directory?type=artist&role=composer
  Genres                  local:directory?type=genre
  Performers              local:directory?type=artist&role=performer
  Release Years           local:directory?type=date&format=%25Y
  Tracks                  local:directory?type=track
  Last Week's Updates     local:directory?max-age=604800
  Last Month's Updates    local:directory?max-age=2592000
timeout = 10
use_artist_sortname = false
album_art_files =
  *.jpg
  *.jpeg
  *.png

[iris]
enabled = true
country = NZ
locale = en_NZ
spotify_authorization_url = https://jamesbarnsley.co.nz/iris/auth_spotify.php
lastfm_authorization_url = https://jamesbarnsley.co.nz/iris/auth_lastfm.php
genius_authorization_url = https://jamesbarnsley.co.nz/iris/auth_genius.php
data_dir = $XDG_DATA_DIR/iris

[internetarchive]
enabled = true
base_url = http://archive.org
collections =
  audio
  etree
  librivoxaudio
  audio_bookspoetry
  audio_tech
  audio_music
  audio_news
  audio_foreign
  audio_podcast
  audio_religion
audio_formats =
  VBR MP3
  64Kbps MP3
image_formats =
  JPEG
  JPEG Thumb
browse_limit = 100
browse_views =
  downloads desc|Views
  titleSorter asc|Title
  publicdate desc|Date Archived
  date desc|Date Published
  creatorSorter asc|Creator
search_limit = 20
search_order =
cache_size = 128
cache_ttl = 86400
retries = 3
timeout = 10

[headless]
enabled = true
device = ;needs to be set
enable_numbers = true
volume_up =
  KEY_VOLUMEUP
volume_down =
  KEY_VOLUMEDOWN
next_song =
  KEY_RIGHT
  KEY_NEXTSONG
previous_song =
  KEY_PREVIOUSSONG
  KEY_LEFT
next_playlist =
  KEY_CHANNELDOWN
  KEY_DOWN
previous_playlist =
  KEY_CHANNELUP
  KEY_UP
play =
  KEY_PLAY
pause =
  KEY_PAUSE
playpause =
  KEY_ENTER
mute =
  KEY_MUTE
shuffle =
  KEY_RECORD

[bookmarks]
enabled = true
sync_period = 500
max_bookmarks = 100
max_bookmark_length = 100000
max_store_items = 10
max_store_item_length = 1000
disable_limits = true

[autoplay]
enabled = true
tracklist.uris = auto
tracklist.index = auto
tracklist.consume = auto
tracklist.random = auto
tracklist.repeat = auto
tracklist.single = auto
playback.state = auto
playback.time_position = auto
mixer.volume = auto
mixer.mute = auto

[file]
enabled = true
media_dirs =
  $XDG_MUSIC_DIR|Music
  ~/|Home
excluded_file_extensions =
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .pdf
  .png
  .txt
  .zip
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000

[http]
enabled = true
hostname = 192.168.1.246
port = 6680
zeroconf = Mopidy HTTP server on $hostname
allowed_origins =
csrf_protection = true
default_app = mopidy

[m3u]
enabled = true
base_dir =
default_encoding = latin-1
default_extension = .m3u8
playlists_dir =

[softwaremixer]
enabled = true

[stream]
enabled = true
protocols =
  http
  https
  mms
  rtmp
  rtmps
  rtsp
metadata_blacklist =
timeout = 5000

[mpd]
enabled = true
hostname = 192.168.1.246
port = 6600
password =
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname
command_blacklist =
  listall
  listallinfo
default_playlist_scheme = m3u

and for the minor instance on RPi4 gives this:

Running "/usr/bin/mopidy --config /usr/share/mopidy/conf.d:/etc/mopidy/mopidy.conf config" as user mopidy
WARNING  [MainThread] mopidy.config Ignoring config section 'mpd' because no matching extension was found
[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
max_tracklist_length = 10000
restore_state = false

[logging]
verbosity = 0
format = %(levelname)-8s [%(threadName)s] %(name)s %(message)s
color = false
config_file =

[audio]
mixer = software
mixer_volume =
output = alsasink
buffer_time =

[proxy]
scheme =
hostname =
port =
username =
password =

[file]
enabled = true
media_dirs =
  $XDG_MUSIC_DIR|Music
  ~/|Home
excluded_file_extensions =
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .pdf
  .png
  .txt
  .zip
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000

[http]
enabled = true
hostname = ::
port = 6680
zeroconf = Mopidy HTTP server on $hostname
allowed_origins =
csrf_protection = true
default_app = mopidy

[m3u]
enabled = true
base_dir =
default_encoding = latin-1
default_extension = .m3u8
playlists_dir =

[softwaremixer]
enabled = true

[stream]
enabled = true
protocols =
  http
  https
  mms
  rtmp
  rtmps
  rtsp
metadata_blacklist =
timeout = 5000

Config looks fine to me.

do you see a file called snapfifo being created in the directory /tmp/ on the NUC with snapserver and mopidy? Do you get any errors in the snapserver or mopidy logs? When you play something on the Mopidy instance on the NUC running snapserver, do you hear the sounds from the snapclients?

Just now, I have changed the [http] setting for major mopidi instance from the
hostname = 192.168.1.246 to hostname= :: and after that my speakers started to produce ‘squiky’ sounds as if it is streaming from the cache… For Mopidy I have a chunk of messages from the last reboot as below:

лют 14 18:20:45 tigraresidence-NUC10i7-srv1 systemd[1]: Started Mopidy music server.
лют 14 18:20:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.__main__ Starting Mopidy 3.1.1
лют 14 18:20:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.config Loading config from builtin defaults
лют 14 18:20:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.config Loading config from file:///usr/share/mopidy/conf.d/mopidy.conf
лют 14 18:20:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.config Loading config from file:///etc/mopidy/mopidy.conf
лют 14 18:20:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.config Loading config from command line options
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.__main__ Enabled extensions: bookmarks, m3u, mpd, mobile, http, stream, file, mpris, youtube, autoplay, internetarchive, iris, muse, mowecl, musicb>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.__main__ Disabled extensions: scrobbler, radionet, local
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__ Found local configuration errors. The extension has been automatically disabled:
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__   local/media_dir must be set.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__ Found radionet configuration errors. The extension has been automatically disabled:
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__   radionet/favorite_stations must be set.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__ Found scrobbler configuration errors. The extension has been automatically disabled:
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__   scrobbler/username must be set.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__   scrobbler/password must be set.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MainThread] mopidy.__main__ Please fix the extension configuration errors or disable the extensions to silence these messages.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy_mowecl VERSION 0.4.0
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy_autoplay Mopidy-Autoplay 0.2.1
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting Mopidy mixer: SoftwareMixer
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting Mopidy audio
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting Mopidy backends: YouTubeBackend, InternetArchiveBackend, BookmarksBackend, FileBackend, M3UBackend, StreamBackend
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [YouTubeBackend-3] mopidy_youtube using bs4API
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting Mopidy core
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [Audio-2] mopidy.audio.actor Audio output set to "audioresample ! audioconvert ! wavenc ! filesink location=/tmp/snapfifo"
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting Mopidy frontends: YouTubeAutoplayer, MprisFrontend, IrisFrontend, InputFrontend, MopidyCoreListener, AutoplayFrontend, HttpFronte>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [IrisFrontend-12] mopidy_iris.core Starting Iris 3.55.4
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [MprisFrontend-11] mopidy_mpris.frontend MPRIS frontend setup failed (g-io-error-quark: Cannot autolaunch D-Bus without X11 $DISPLAY (0))
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: ERROR    [Core-9] mopidy.core.playlists BookmarksBackend backend caused an exception.
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: Traceback (most recent call last):
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/mopidy/core/playlists.py", line 16, in _backend_error_handling
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     yield
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/mopidy/core/playlists.py", line 68, in as_list
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     playlists = future.get()
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/pykka/_threading.py", line 45, in get
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     _compat.reraise(*self._data['exc_info'])
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/pykka/_compat/__init__.py", line 29, in reraise
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     raise value
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 193, in _actor_loop
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     response = self._handle_receive(envelope.message)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 299, in _handle_receive
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     return callee(*message.args, **message.kwargs)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_bookmarks/backend.py", line 41, in as_list
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     bookmark_names = self.bmcontroller.as_list().get()
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_bookmarks/backend.py", line 28, in bmcontroller
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     self._bmcontroller = pykka.ActorRegistry.get_by_class_name(
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: IndexError: list index out of range
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [HttpFrontend-22] mopidy.http.actor HTTP server running at [::]:6680
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy_mpd.actor MPD server running at [::]:6600
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: ERROR    [InputFrontend-13] pykka Unhandled exception in InputFrontend (urn:uuid:8d601026-077f-4fdf-b6c6-14ed984acccb):
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: Traceback (most recent call last):
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/evdev/device.py", line 126, in __init__
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     fd = os.open(dev, os.O_RDWR | os.O_NONBLOCK)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: FileNotFoundError: [Errno 2] No such file or directory: ';needs to be set'
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: During handling of the above exception, another exception occurred:
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: Traceback (most recent call last):
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 186, in _actor_loop
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     self.on_start()
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_headless/frontend.py", line 112, in on_start
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     self.inputthread.register_handlers([
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_headless/input.py", line 56, in register_handlers
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     self.register_handler(handler)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_headless/input.py", line 32, in register_handler
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     device = InputDevice(handler.device_fn)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:   File "/usr/local/lib/python3.8/dist-packages/evdev/device.py", line 128, in __init__
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]:     fd = os.open(dev, os.O_RDONLY | os.O_NONBLOCK)
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: FileNotFoundError: [Errno 2] No such file or directory: ';needs to be set'
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MainThread] mopidy.commands Starting GLib mainloop
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.stream.actor Problem looking up http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:20:46 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:20:52 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MpdSession-37] mopidy_mpd.session New MPD connection from [::ffff:192.168.1.3]:49246
лют 14 18:26:29 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:29 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:29 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:30 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:31 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:26:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:26:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:26:45 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:27:42 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [StreamBackend-8] mopidy.internal.http Download of 'http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3' faile>
лют 14 18:27:42 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [StreamBackend-8] mopidy.stream.actor Unwrapping stream from URI (http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_transl>
лют 14 18:27:42 tigraresidence-NUC10i7-srv1 mopidy[143870]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3%253A8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3
лют 14 18:32:20 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MpdSession-1415] mopidy_mpd.session New MPD connection from [::ffff:192.168.1.239]:42712
лют 14 18:32:20 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MpdSession-1417] mopidy_mpd.session New MPD connection from [::ffff:192.168.1.239]:42714
лют 14 18:32:34 tigraresidence-NUC10i7-srv1 mopidy[143870]: INFO     [MpdSession-1445] mopidy_mpd.session New MPD connection from [::ffff:192.168.1.239]:42716

yes, I do se the file snapfifo in the tmp dir.

And this is the log for the Snapserver

root@tigraresidence-NUC10i7-srv1:/tmp# tail -f /var/log/syslog |grep -e snap
Feb 14 18:46:40 tigraresidence-NUC10i7-srv1 snapserver[125872]: Error reading message header of length 0: End of file
Feb 14 18:46:40 tigraresidence-NUC10i7-srv1 snapserver[125872]: onDisconnect: 8f759bec-e70f-4ba5-aaaa-b35ceb2fb71b
Feb 14 18:46:41 tigraresidence-NUC10i7-srv1 snapserver[125872]: StreamServer::NewConnection: 192.168.1.239
Feb 14 18:46:41 tigraresidence-NUC10i7-srv1 snapserver[125872]: Hello from 8f759bec-e70f-4ba5-aaaa-b35ceb2fb71b, host: SM-G975F, v0.23.0, ClientName: Snapclient, OS: Android 11, Arch: arm64-v8a, Protocol version: 2
Feb 14 18:46:52 tigraresidence-NUC10i7-srv1 snapserver[125872]: Error reading message header of length 0: End of file
Feb 14 18:46:52 tigraresidence-NUC10i7-srv1 snapserver[125872]: onDisconnect: 8f759bec-e70f-4ba5-aaaa-b35ceb2fb71b
Feb 14 18:46:52 tigraresidence-NUC10i7-srv1 snapserver[125872]: Error in socket shutdown: Transport endpoint is not connected
Feb 14 18:46:52 tigraresidence-NUC10i7-srv1 snapserver[125872]: StreamServer::NewConnection: 192.168.1.239
Feb 14 18:46:52 tigraresidence-NUC10i7-srv1 snapserver[125872]: Hello from 8f759bec-e70f-4ba5-aaaa-b35ceb2fb71b, host: SM-G975F, v0.23.0, ClientName: Snapclient, OS: Android 11, Arch: arm64-v8a, Protocol version: 2

And RPi snap client keeps logging me this continiously:

root@raspberrypi:~# tail -f /var/log/syslog |grep -e snap
Feb 14 16:50:12 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100491
Feb 14 16:50:13 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100192
Feb 14 16:50:15 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100516
Feb 14 16:50:16 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100442
Feb 14 16:50:17 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100371
Feb 14 16:50:18 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100439
Feb 14 16:50:19 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100167
Feb 14 16:50:21 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100033
Feb 14 16:50:22 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100148
Feb 14 16:50:23 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100348
Feb 14 16:50:24 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100426
Feb 14 16:50:25 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100499
Feb 14 16:50:27 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101087
Feb 14 16:50:29 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100782
Feb 14 16:50:30 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101238
Feb 14 16:50:31 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101069
Feb 14 16:50:32 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101159
Feb 14 16:50:33 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100749
Feb 14 16:50:35 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101233
Feb 14 16:50:36 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -100489
Feb 14 16:50:37 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101144
Feb 14 16:50:38 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101173
Feb 14 16:50:39 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101337
Feb 14 16:50:41 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101364
Feb 14 16:50:42 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101484
Feb 14 16:50:43 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101799
Feb 14 16:50:44 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101268
Feb 14 16:50:45 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101762
Feb 14 16:50:47 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101578
Feb 14 16:50:48 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101827
Feb 14 16:50:49 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101174
Feb 14 16:50:50 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101408
Feb 14 16:50:51 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101347
Feb 14 16:50:53 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101555
Feb 14 16:50:54 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101590
Feb 14 16:50:55 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101533
Feb 14 16:50:56 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -101876
Feb 14 16:50:58 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -99743
Feb 14 16:50:59 raspberrypi snapclient[581]: pMiniBuffer->full() && (abs(pMiniBuffer->mean()) > 50): -99532

Thanks!

After listening to strange noise from the speakers I decided to delete snapfifo file and create a new empty one with same name. Basically, now Mopidy main instance is sending me that message:

лют 14 19:21:39 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Audio-2] mopidy.audio.actor Setting GStreamer state to GST_STATE_PLAYING failed
лют 14 19:21:39 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3:8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_-_google_translate.mp3

Maybe there is something wrong with pipe settings? Or mopidy does not play mp3 and needs to convert it first? How is it working in your case?
UPD:
MaryTTS yelds same result however:

лют 14 19:33:23 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://192.168.1.3:8123/api/tts_proxy/23644687d21b6329320f515ecad6b7162c771aab_ru_f3b07c15f9_marytts.wav
лют 14 19:33:23 tigraresidence-NUC10i7-srv1 mopidy[149712]: INFO     [Core-9] mopidy.core.playback No playable track in the list.

wav is not playeble either…

Is normal music working? How did you connect Home Assistant to the Mopidy instance to play the TTS?

Normal music - is stage 2,
I am at stage 0 at the moment…
I need to learn how to set the config to make the music content available first, I was thinking that TTS is a simpler test, before…
'>>>>'How did you connect Home Assistant to the Mopidy instance to play the TTS?
Maybe this is the point I am missing. Below is my config:

media_player:
  - platform: snapcast
    host: 192.168.1.246
    port: 1705
  - platform: mpd
    host: 192.168.1.246
    name: Multi-Room Controller
  - platform: mpd
    host: 192.168.1.247
    name: Dinigroom

alias: 'voive_command'
sequence:
  - service: tts.marytts_say
    entity_id: media_player.multi_room_controller
    data:
      message: |-
        test! 
      language: en
mode: single

I can see ‘Multi-Room Controller’, but it says status off all the time - I suggest it is because it is on only when playing, and it is not playing anything at the moment. But status of ‘Diningroom’ mpd - is always unawailable - this is RPi4… Why? Is there anything I am missing?

Thanks for your time and help!

I forgot to mention, I used this script to make snapcast run on startup. It has CODEC field for the server. Could it be the reason for file format problem?

Are you able to access the mopidy interface through 192.168.1.246:6680?
Try playing something from the web interface of mopidy first and see if this works, then tackle TTS, TTS is more level 2 than music in my experience :slight_smile:
Is the Home Assistant server on the same subnet/VLAN as the snapserver?
Do TTS messages work on other media players?

‘>>’ Are you able to access the mopidy interface through 192.168.1.246:6680?
Yes, I can and can access every add-on I’ve installed for the Mopidy

No, it does not seem to work, I’ve tried to stream this:

using music-box extension, and the list of errors is below :

лют 15 02:51:27 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: http://ndr-ndr2-niedersachsen.cast.addradio.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3
лют 15 02:51:27 tigraresidence-NUC10i7-srv1 mopidy[149712]: INFO     [Core-9] mopidy.core.playback No playable track in the list.
лют 15 02:51:30 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Audio-2] mopidy.audio.actor Setting GStreamer state to GST_STATE_PLAYING failed
лют 15 02:51:30 tigraresidence-NUC10i7-srv1 mopidy[149712]: WARNING  [Core-9] mopidy.core.tracklist Track is not playable: 'http://ndr-ndr2-niedersachsen.cast.addradio.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3'

‘>>’ Is the Home Assistant server on the same subnet/VLAN as the snapserver?
Yes, they are.
‘>>’ Do TTS messages work on other media players
Yes, they are. As a metter of fact just few hours ago I discovered that VLC works pretty well (I needed urgently to TTS messages from my code to the endpoint to continue development of the add-on), but I did not plug it via Snapcast yet - RPi4 now each runs a VLC and plays messages no problem as a standalone mediaplayers. Do you think VLC would possibly replace Mopidy as far as multi-room is concerned, or It worth pushing with Mopidy?

Thanks for your help!

Ran across this thread as I’m working on mopidy and snapcast myself. I’m confused about why you have mopidy on each client. My understanding was that you need one mopidy instance on a server and snapserver and then on each remote client you only need snapclient.
What functionality do you gain with mopidy on the clients?

Hello there!

Thats the question I was execting for all that time. Actually, there is not much need in it, since following that draft:
https://www.home-assistant.io/blog/2016/02/18/multi-room-audio-with-snapcast/
after the sound gets into the snapcast posession, there is nothing Mopidy can do or should about it… So, technically, you need one for the TTS and one for the Music to make the system stop playing, making the output for TTS and resume playing. But another issue that this thing does not work in my case, and we are yet to figure out why…Is it snapcast or mopidy issue? From the logs I’ve posted it is Mopidy returning ‘no playeble content’, so looks like mopidy at the moment to me…

That’s true if you only want multiroom. If you want to play individual music in multiple rooms and controlled through the snapclients (e.g. my wide wants to listen her songs in the bedroom, while I want to play my music in the office and the livingroom), you need one instance of mopidy (that is connected to snapserver) for each room.

Another way to tackle this is to have a mopidy or any other media player for each room not connected to snapcast and then pjust play the music there and switch to the mopidy instance connected to snapcast when you want multiroom.

VLC can’t write data to a pipe as far as I know, so it won’t work with Snapcast.

Looks like the issue is with Mopidy. Can you try adding local files to the special mopidy instance and see if they play?