efa2000 / node-red-contrib-alice

The module allows you to use Node-Red together with the Yandex.Alice voice assistant service (voice control of Yandex smart home devices)
MIT License
39 stars 8 forks source link

Параметр random_access нода Range #9

Closed TomasDlg closed 4 years ago

TomasDlg commented 4 years ago

Какое значения параметра random_access (true или false) для device type TV и range type volume? В вашем коде нашел только: this.random_access = config.random_access || true. А файла с конфигурацией не нашел. Проблема заключается в следующем: 1)При подаче команды "Алиса, сделай телевизор тише на 10" из ноды летит msg.payload=-10 громкость звука на телевизоре уменьшается НА 10. При подаче команды "Алиса, сделай звук на телевизоре 30" из ноды летит msg.payload=30 громкость звука на телевизоре становится 30. При подаче команды "Алиса, сделай телевизор громче на 10" из ноды летит msg.payload=10 громкость звука на телевизоре становится 10. А должен уровень громкости увеличится на 10, вместо этого он становится равным 10. 2)Изменение параметра Step в параметрах ноды Range ни как не влияет на шаг изменения громкости звука телевизора. Изменение громкости звука всегда идет с шагом 10. И при подаче голосовой команды "Алиса, увеличь громкость телевизора" и при ручной регулировке громкости через приложение Яндекс. При этом из-за первой проблемы уровень звука становится равным 10. Как решить данные проблемы?

efa2000 commented 4 years ago

нашел в чем здесь проблема у меня в коде отсутствовала обработка доп параметра relative передаваемого от яндекса добавлю, по готовности напишу

efa2000 commented 4 years ago

исправлено в версии 0.3.3 обновитесь, должно пропасть

TomasDlg commented 4 years ago

После обновления проблема 1 решена. Проблема с параметром Step в параметрах ноды Range все еще актуальна. Шаг не меняется.

efa2000 commented 4 years ago

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

TomasDlg commented 4 years ago

Обновление списка устройств помогло. Шаг изменяется, только не понятно по какой логике: Ставлю параметр Step = 1, звук меняется с шагом =3, Step =2 звук меняется с шагом =4, Step = 3 звук меняется с шагом =3.

efa2000 commented 4 years ago

да, сейчас тоже смог воспроизвести это но это воспроизводится только если просить алису голосом, если управлять устройствами из приложения яндекса все корректно у меня получается ошибки шага только при шаге меньше 3 в остальных случаях все корректно

напишу в поддержку яндекса, т.к. ко мне в сервис это приходит от них

efa2000 commented 4 years ago

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

Ответ от поддержки Яндекса:

Прошу прощения за ожидание. Поведение, которые вы описывали, является ожидаемым - величина изменения громкости при управлении голосом рассчитывается автоматически с использованием знаний о граничных значениях диапазона и шага внутри него. В мобильном приложении громкость меняется на шаг, указанный в precision.

TomasDlg commented 4 years ago

Получается что шаг изменения громкости меньше 3-х сделать нельзя?

efa2000 commented 4 years ago

Попытался уточнить у Яндекса формулу для вычисления шага, при голосовых командах, но безуспешно вот их ответ:

Благодарю за ожидание. К сожалению, на больших диапазонах громкости (когда параметры min и max, например, имеют значения 0 и 100 соответственно) изменить шаг при управлении голосом в меньшую сторону невозможно. На малых диапазонах (например, от 0 до 10) изменение будет соответствовать либо 1, либо precision, в зависимости от величины precision.