TTS on HomePods stopped working

I’ve been using this:

{% set open_doors = states | selectattr('entity_id', 'in', state_attr('binary_sensor.ha_alarm_armed_night_doors','entity_id')) | selectattr('state','in',['on','open']) | map(attribute='name') | list %} {% if open_doors | length == 1 %}
  failed to set alarm - {{ open_doors[0] }} is open.
{% else %}
  failed to set alarm - {{ open_doors[:-1] | join(', ') }}{{',' if open_doors | length > 2}} and {{ open_doors[-1]}} are open.
{% endif %}

for some time for iOS notifications and TTS on HomePods. For some reason it still works for iOS notifications but errors out for TTS on HomePods:

Logger: homeassistant.core
Source: core.py:2819
First occurred: 4:23:44 PM (1 occurrence)
Last logged: 4:23:44 PM

Error executing service: <ServiceCall media_player.play_media (c:01JZ6Q7RWF0P11SFQJMC7218Z3): entity_id=['media_player.livingroom_homepodmini', 'media_player.bedroom_homepodmini'], announce=True, extra=, media_type=music, media_id=media-source://tts/tts.piper?message=failed+to+set+alarm+-+cs:+backyard+sliding+door/screen+door+is+open.&cache=false&tts_options=null>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 2819, in _run_service_call_catch_exceptions
    await coro_or_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 2842, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1036, in entity_service_call
    raise result from None
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1611, in async_request_call
    return await coro
           ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1083, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/media_player.py", line 347, in async_play_media
    await self.atv.stream.stream_file(media_id)
  File "/usr/local/lib/python3.13/site-packages/pyatv/core/facade.py", line 374, in stream_file
    await self.relay("stream_file")(
    ...<4 lines>...
    )
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/raop/__init__.py", line 360, in stream_file
    audio_file = await open_source(
                 ^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/raop/audio_source.py", line 730, in open_source
    return await InternetSource.open(source, sample_rate, channels, sample_size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/raop/audio_source.py", line 598, in open
    stream_generator = await loop.run_in_executor(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<9 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/site-packages/miniaudio.py", line 1270, in stream_any
    raise DecodeError("failed to init decoder", result)
miniaudio.DecodeError: ('failed to init decoder', -1)

Thanks,
->g.

1 Like