dext0r / ha-yandex-station-intents

Продвинутое получение команд от Яндекс.Станции и передача их в Home Assistant в виде событий
127 stars 8 forks source link

Не все сценарии пробрасываются в УДЯ #44

Open MrSnakeSPb opened 4 months ago

MrSnakeSPb commented 4 months ago

В какой-то момент активационные фразы пропали или начали путаться. На запрос "включит телевизор" срабатывает другой интент (видно, если в разработчике подписаться на событие) или совсем не срабатывает (Алиса отвечает как на обычную фразу).

Я не знаю куда копать. Переустанавливал, удалял вручную и службой (как в FAQ), сценарии в УДЯ исчезают, потом появляются (как и положено с минусами вначале), но не все. `Уровень: ОШИБКА Эта ошибка возникла в пользовательской интеграции. Регистратор: custom_components.yandex_station_intents Источник: custom_components/yandex_station_intents/init.py:262 интеграция: Yandex.Station Intents (документация, проблемы) Первое сообщение: 14:30:51 (24 сообщений) Последнее сообщение: 14:51:18

Ошибка создания или обновления сценария '--- Выключи телевизор' Ошибка создания или обновления сценария '--- Найди телефон Вероники' Ошибка создания или обновления сценария '--- Найди телефон Натальи' Ошибка создания или обновления сценария '--- Отбей домофон' Ошибка создания или обновления сценария '--- Открой домофон'`

В HA создано в configuration: yandex_station_intents: intents: !include includes/Integration/YandexIntent.yaml

В файле YandexIntent.yaml

Найди телефон Андрея: extra_phrases:

Лог журнала HomeAssistant: 2024-05-18 14:51:16.689 ERROR (MainThread) [custom_components.yandex_station_intents] Ошибка создания или обновления сценария '--- Включи телевизор' Traceback (most recent call last): File "/config/custom_components/yandex_station_intents/__init__.py", line 262, in _async_setup_intents await quasar.async_add_or_update_intent( File "/config/custom_components/yandex_station_intents/yandex_quasar.py", line 207, in async_add_or_update_intent assert resp["status"] == "ok", resp AssertionError: {'request_id': 'dfdc0c7b-e6fb-4807-b71b-f8e467887fd2', 'status': 'error', 'code': 'VOICE_TRIGGER_PHRASE_IS_ALREADY_TAKEN', 'message': 'Активационная фраза для сценария уже используется'} 2024-05-18 14:51:16.755 ERROR (MainThread) [custom_components.yandex_station_intents] Ошибка создания или обновления сценария '--- Выключи ресивер' Traceback (most recent call last): File "/config/custom_components/yandex_station_intents/__init__.py", line 262, in _async_setup_intents await quasar.async_add_or_update_intent( File "/config/custom_components/yandex_station_intents/yandex_quasar.py", line 207, in async_add_or_update_intent assert resp["status"] == "ok", resp AssertionError: {'request_id': '4f041fb5-463b-4018-9212-c6e7e8ebdebe', 'status': 'error', 'code': 'VOICE_TRIGGER_PHRASE_IS_ALREADY_TAKEN', 'message': 'Активационная фраза для сценария уже используется'}

MrSnakeSPb commented 4 months ago

Я разобрался, ура - заработало. Начал внимательно изучать и заметил: Экстра фразы не должны повторять объявленный интент. Убрал повторы и все сразу заработало.

Было бы неплохо добавить в Readme. Время ужинать: # (3) extra_phrases: # альтернативные фразы, максимум три

Срабатывает от Алиса, время кушать (или Алиса, время ужина, или Алиса, давай ужинать и т.п.), генерирует событие с text: Время ужинать, колонка ничего не скажет в ответ. Интент с экстра фразами не должен повторяться

Тут есть небольшая неточность, время кушать не объявлено. Я так понимаю, что теперь 4 фразы могут активировать интент или только 3 экстра фразы?

Но, конечно же, это на ваше усмотрение.

cognolio commented 2 days ago

@MrSnakeSPb, у меня похожая проблема. Только не знаю с какой стороны эта проблема. К примеру есть такие фразы в configuration.yaml yandex_station_intents: intents: Включи свет: # (1) Выключи свет: # (2) ... У меня нет никаких экстра фраз, ни параметров, ничего. Просто список с фразами и порядковый номер.

В УДЯ, соответственно, есть два сценария: Сделай громкость---. Сделай громкость---..

Пока всё ок. Но когда я добавляю ещё фразы, то в УДЯ перепутываются сценарии и, например становится вот так: Сделай громкость---.:: Сделай громкость---.. Сделай громкость---.,. Сделай громкость---.

То есть часть сценариев остается без изменений, часть меняется. И на какие то фразы вызываются нужные сценарии, на другие фразы вызываются не те сценарии, а на некоторые вообще ничего не происходит. Может быть вы сталкивались с таким поведением и знаете как это можно пофиксить?