AlexxIT / YandexDialogs

Компонент для управления Home Assistant через Яндекс.Диалоги

Home Page:https://t.me/AlexxIT_SmartHome

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Вывод всей информации из ответа Яндекса в режиме ивентов

andreypolyak opened this issue · comments

В режиме ивентов компонент отправляет в HA ивент с очень куцей информацией о произнесенном:

{
    "command": "9 часов 45 минут",
    "text": "9 часов 45 минут"
}

Хотя API яндекса выдает намного больше информации, например, время в структурированном виде, как в этом примере:

{
    "command": "9 часов 45 минут",
    "markup": {
        "dangerous_context": false
    },
    "nlu": {
        "entities": [
            {
                "tokens": {
                    "end": 2,
                    "start": 0
                },
                "type": "YANDEX.DATETIME",
                "value": {
                    "hour": 9,
                    "hour_is_relative": false,
                    "minute": 45,
                    "minute_is_relative": false
                }
            }
        ],
        "intents": {},
        "tokens": [
            "9",
            "45"
        ]
    },
    "original_utterance": "9 часов 45 минут",
    "type": "SimpleUtterance"
}

Было бы здорово, если бы компонент выдавал всю информацию из ответа API. Насколько я понимаю, для этого нужно просто изменить вот эту строку с

self.hass.bus.async_fire('yandex_intent', slots)

на

self.hass.bus.async_fire('yandex_intent', request)

Если нужно, могу сделать PR.

Я специально не стал выводить лишнюю информацию, что не усложнять. Просто так уже менять нельзя - готовые автоматизации у пользователей поломаются.

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