YandexStation
YandexStation copied to clipboard
Несколько TTS команд подряд - не дожидается конца предыдущей
У меня есть скрипт в котором должны произноситься несколько предложений подряд со статусом дома. Например:
- (проверяются обогреватели) "Все обогреватели выключены"
- (проверяется свет) "Свет отключен". Так вот, если это две TTS команды (через play_media) то он успевает сказать только часть первой (не дожидаясь конца) и начинает вторую: "Все обогрева... Свет отключен". Пытался использовать очередь. Enqueue - Add to queue. Но нет, не получается.
Есть какой-нибудь вариант?
P.S. Если бы не ужасная работа HA с переменными, в принципе мог бы сначала составить все большое предложение и потом его отправить. Но как-то очень неочевидно.
Повесить после каждого предложения ожидание new_state.attributes.alice_state = IDLE.
Несколько TTS команд подряд - не дожидается конца предыдущей
Это не всегда было так. У меня есть скрипты, которые были написаны давно с многочисленными вызовами TTS, они прекрасно работали долгое время и каждый последующий вызов TTS срабатывал после завершения предыдущего. С опредленного момента несколько месяцев назад все скрипты перестали работать как раньше, и появилось мгновенное перескакивание на следующий TTS без окончания предыдущего. К сожалению не удалось отследить с каким апдейтом и какого компонента (самого HA, или интеграции станции) произошло это изменение. Пришлось решать проблему добавлением wait_for_trigger с состояниями from: SPEAKING > to: IDLE. Проблема как-бы решилась, но это не очень удобно, так как появились паузы между произношением TTS и бывает такое что не все смены состояния перехватываются, что ведет к приостановлению исполнения скрипта. А последнее время вообще появилась проблема со скриптами с многочисленным вызовом TTS. После 4-5 вызовов скрипт просто останавливается без каких-либо ошибок в логе.
Повесить после каждого предложения ожидание new_state.attributes.alice_state = IDLE.
это можно прям в скрипт вставить? покажите кусок пожалуйста