Bywają takie przypadki, że TTS nie działa na niektórych odtwarzaczach.
Widzę dodatkowo, że Digital Pendulum ma swoje dodatkowe wymagania - trzeba skonfigurować rodzaj odtwarzacza zgodny z odtwarzaczem (3 rodzaje do wyboru, w dodatku z tego co wiem ani urządzenia Alexa, ani Google Home nie odtwarzają języka polskiego w swoim natywnym trybie, odtwarzają to w sumie złe określenie - chodzi o to, że nie syntetyzują polskiego języka).
BTW U mnie to w ogóle nie działa (nawet nie odtwarza dźwięku, nie mówiąc o TTS), a szkoda mi czasu na szukanie przyczyny.
Każda zmiana konfiguracji wymaga restartu HA (bo to komponent niestandardowy) więc dalsze testy sobie daruję.
Wydaje się, że pokazujesz właśnie to co opisałem post wyżej - Nest hubnie mówi po polsku.
Dla testów możesz ustawić jakiś język jaki obsługuje (na 100% angielski, niemiecki, włoski i francuski, ale są i jakieś inne), pełna lista niżej, Nest Huby są w rozwijalnych listach na dole
albo eksperymentować z wykorzystaniem go jako odtwarzacz poza natywnym trybem GH
Tak, wklej obrazek zawierający jeszcze mniej treści… to na 100% ułatwi życie komuś chcącemu pomóc…
Jak sobie wyobrażasz porównanie wcześniejszego loga i tego co pokazałeś obecnie?
W tym poprzednim logu były chociaż jakieś konkretne informacje
Ale i tak twojego problemu nawet nie jestem w stanie odtworzyć, bo nie używam chmury NabuCasa.
Nie bardzo rozumiem co tu się dzieje, ale teraz to już w ogóle jest jakiś “szoł” -
do nesthuba wysyłasz język polski (co widać, bo żądania zawierają zarówno tekst po polsku jak i język pl), którego on nie obsługuje, więc nie rozumiem z jakiej paki masz dalej w tym samym logu problem z językiem en
Przećwicz wstawianie logów jako kodu (a NIE jako cytowania) = odwrotne apostrofy podstawy-forum a następnie zgłoś issue na githubie (tam się wstawia kod => czyli logi tak samo jak metodą ręczną na forum) i zgłoś issue (nikt lepiej niż autor nie będzie wiedział co tu się dzieje).
Proponuję jednak wybrać na czas testów jakiś inny player niż nesthuba, a dopiero jak się uda to sprawdź na tym sprzęcie czy nadal działa.
BTW jako TTS który działa jakoby “z każdym odtwarzaczem” używam google translate, ale jak już pisałem ten komponent w ogóle u mnie nie działa, a szkoda mi czasu na walkę. Jeśli będę miał więcej czasu i zdrowie mi pozwoli, to zrobię testy za dwa tygodnie może 3 (a jeśli zdrowie nie pozwoli, to nie zrobię ich wcale).
U mnie też sypie błędami, tylko że nie mam Nabu Casa.
Zmiana głośnika z Nest Hub na Google Home nic nie dała.
Normalnie używam Google Cloud lub Google translate i wszystko działa.
EDIT:
Pojawiła się aktualizacja do 3.1.6
Pomogło tylko tyle, ze zaczęło odtwarzać dźwięk dzwonka ale TTS dalej nie ma.
Rejestrator: custom_components.digital_pendulum.pendulum
Źródło: custom_components/digital_pendulum/pendulum.py:394
Integration: Digital Pendulum (dokumentacja, Problemy)
Pierwsze zdarzenie: 13:24:23 (1 wystąpienie)
Ostatnio zalogowany: 13:24:23
Digital Pendulum: errore durante l’annuncio su ‘media_player.nest_hub’: extra keys not allowed @ data[‘announce’]
This error originated from a custom integration.
Rejestrator: custom_components.digital_pendulum.pendulum
Źródło: custom_components/digital_pendulum/pendulum.py:394
Integration: Digital Pendulum (dokumentacja, Problemy)
Pierwsze zdarzenie: 10:00:05 (2 wystąpienia)
Ostatnio zalogowany: 11:00:05
Digital Pendulum: errore durante l'annuncio su 'media_player.nesthub0dd1_4': extra keys not allowed @ data['announce']
Musisz usunąć parametr announce, którego głośniki Google nie akceptują (i poprawka dla Nabu Casa: musi być pl-PL zamiast pl )
W /custom_components/digital_pendulum/player_google.py i podmień całą treść na :
from .player_base import BasePlayer
class GooglePlayer(BasePlayer):
async def play_default_chime(self):
pass
async def play_chime(self, chime_url: str):
try:
await self.hass.services.async_call(
"media_player", "play_media",
{
"entity_id": self.player,
"media_content_id": chime_url,
"media_content_type": "audio/mp3",
},
blocking=True,
)
except Exception:
await self.play_default_chime()
def _find_tts_entity(self) -> str | None:
preferred = ["tts.google_translate_say", "tts.home_assistant_cloud", "tts.google_translate"]
for entity_id in preferred:
if self.hass.states.get(entity_id) is not None:
return entity_id
return None
async def speak(self, text: str, language: str = "pl"):
tts_entity = self._find_tts_entity()
if tts_entity == "tts.home_assistant_cloud" and language == "pl":
language = "pl-PL"
if tts_entity:
await self.hass.services.async_call(
"tts", "speak",
{
"entity_id": tts_entity,
"media_player_entity_id": self.player,
"message": text,
"language": language,
},
blocking=False,
)