Node-RED Alice: различия между версиями
(→Подготовка: Заменил ссылку на видео) |
|||
(не показано 66 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Draft}} | |||
{{DISPLAYTITLE: Настройка Алисы на контроллере Wiren Board}} | {{DISPLAYTITLE: Настройка Алисы на контроллере Wiren Board}} | ||
== Подготовка == | == Подготовка == | ||
Алиса — это голосовой помощник от Яндекс, который с помощью навыков может управлять устройствами умного дома. Все добавленные устройства будут видны в приложении Яндекс, что позволит вам управлять ими удалённо. | |||
Для настройки голосового помощника Алисы от Яндекс на контроллере [[Wiren Board]] нам понадобится: | |||
Для настройки Алисы на контроллере [[Wiren Board]] | * установленный [[Node-Red | Node-RED]], | ||
* установленный Node-RED | * настроенный модуль [[Node-Red#WB_Nodes |WB Nodes]], | ||
* модуль [https://flows.nodered.org/node/node-red-contrib-alice node-red-contrib-alice] | * модуль [https://flows.nodered.org/node/node-red-contrib-alice node-red-contrib-alice], | ||
* Яндекс-аккаунт и мобильное приложение Яндекс. | * Яндекс-аккаунт и мобильное приложение Яндекс. | ||
Строка 28: | Строка 17: | ||
== Установка модуля == | == Установка модуля == | ||
[[Image: installing node-red-contrib-alice.png|300px|thumb|right| Установка модуля node-red-contrib-alice]] | [[Image: installing node-red-contrib-alice.png|300px|thumb|right| Установка модуля node-red-contrib-alice]] | ||
Чтобы Node-RED | Чтобы Node-RED смог работать с Алисой, установите модуль <code>node-red-contrib-alice</code>: | ||
{{Node-RED Installing plugin | {{Node-RED Installing plugin | ||
|search= contrib-alice | |search= contrib-alice | ||
Строка 37: | Строка 26: | ||
== Настройка учётной записи для модуля == | == Настройка учётной записи для модуля == | ||
Перед тем, как передавать данные из контроллера в Алису, нам нужно настроить ноду | [[Image: alice-service-configure-nr.png|300px|thumb|right| Создание ноды alice-service]] | ||
Перед тем, как передавать данные из контроллера в Алису, нам нужно настроить ноду alice-service: | |||
# Перетяните в рабочую область ноду '''On_Off'''. | # Перетяните в рабочую область ноду '''On_Off'''. | ||
# Дважды кликните на ней — откроется окно '''Edit On_Off node'''. | # Дважды кликните на ней — откроется окно '''Edit On_Off node'''. | ||
Строка 52: | Строка 42: | ||
# Вы вернётесь в окно ''Edit alice-device node'' в котором заполните поля и добавьте новое устройство или нажмите '''Cancel''' для выхода. | # Вы вернётесь в окно ''Edit alice-device node'' в котором заполните поля и добавьте новое устройство или нажмите '''Cancel''' для выхода. | ||
Настройка учётной записи завершена, теперь можем добавлять новые устройства, которыми | Настройка учётной записи завершена, теперь можем добавлять новые устройства, которыми будем управлять через Алису и приложение Яндекс. | ||
== Добавление устройства == | == Добавление устройства == | ||
Добавим переключатель, который будет управлять зуммером контроллера. | |||
=== Виртуальное Яндекс-устройство === | === Виртуальное Яндекс-устройство === | ||
Сперва настраиваем виртуальное Яндекс-устройство | Сперва настраиваем виртуальное Яндекс-устройство, так как у нас переключатель, то выберем ноду '''On_Off''': | ||
# Перетяните в рабочую область ноду '''On_Off'''. | # Перетяните в рабочую область ноду '''On_Off'''. | ||
# Дважды кликните на ней — откроется окно '''Edit On_Off node'''. | # Дважды кликните на ней — откроется окно '''Edit On_Off node'''. | ||
Строка 84: | Строка 58: | ||
#** Type — тип устройства. | #** Type — тип устройства. | ||
# Нажмите на кнопку '''Add''', чтобы сохранить изменения. | # Нажмите на кнопку '''Add''', чтобы сохранить изменения. | ||
# Вы вернётесь в окно '''Edit On_Off node''', в котором поставьте | # Вы вернётесь в окно '''Edit On_Off node''', в котором поставьте галочку '''Always answer Alice with success''', которая скажет Алисе не ждать ответа от устройства после отправки команды. Это нужно нам, так как мы не задействуем вход ноды '''On_Off'''. | ||
Теперь Алиса знает, что у нас есть устройство, но оно пока ничего не делает. | |||
=== | === Настройки связи с контроллером === | ||
Для связи с контроллером нам понадобится '''WB Nodes''', который должен быть уже установлен и настроен. | |||
Например, подключим встроенный зуммер контроллера: | |||
# Перетяните в рабочую область ноду '''out''', которая находится слева в группе '''Wiren Board'''. | |||
# Дважды кликните на ней — откроется окно '''Edit out node''', где укажите: | |||
#* Name — имя, например, Buzzer. | |||
#* Server — MQTT-сервер, связь с которым настраивается при установке модуля ''WB Nodes''. | |||
#* Channel — выберитев открывшемся списке mqtt-топик '''buzzer/enabled'''. Если список пуст, нажмите кнопку ''Refresh Device List''. | |||
#* Command — выберите '''/on'''. | |||
#* Payload — должно быть выбрано msg.payload | |||
# Чтобы сохранить, нажмите кнопку '''Done'''. | |||
Теперь, когда у нас настроены виртуальное Яндекс-устройство и один из mqtt-топиков контроллера Wiren Board, нам нужно их связать между собой. | Теперь, когда у нас настроены виртуальное Яндекс-устройство и один из mqtt-топиков контроллера Wiren Board, нам нужно их связать между собой. | ||
Перед связыванием нужно учесть | Перед связыванием нужно учесть две вещи: | ||
# виртуальное Яндекс-устройство на выход отправляет сигнал '''true/false''' | # виртуальное Яндекс-устройство на выход отправляет сигнал '''true/false''' | ||
# mqtt-топик контроллера принимает сигнал '''1/0'''. | # mqtt-топик контроллера принимает сигнал '''1/0'''. | ||
Строка 112: | Строка 83: | ||
Поэтому нам понадобится конвертер сообщений: | Поэтому нам понадобится конвертер сообщений: | ||
# Перетяните в рабочую область ноду '''change''', которая находится слева в группе '''function'''. | # Перетяните в рабочую область ноду '''change''', которая находится слева в группе '''function'''. | ||
# Дважды кликните на ней — откроется окно '''Edit change node''', | # Дважды кликните на ней — откроется окно '''Edit change node''', и настройте её так же, как на картинке: | ||
# | #: [[Image: change-node-converter-bool-to-number.png |300px]] | ||
# Нажмите кнопку '''Done'''. Конвертер готов. | # Нажмите кнопку '''Done'''. Конвертер готов. | ||
Теперь соедините ноды между собой в таком порядке: выход ноды '''On_Off''' → '''Конвертер''' → '''вход ноды mqtt-канала контроллера'''. | |||
Теперь соедините ноды между собой в таком порядке: выход ноды ''' | |||
Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку '''Deploy'''. | Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку '''Deploy'''. | ||
Строка 158: | Строка 93: | ||
== Настройка интеграции со стороны Яндекс == | == Настройка интеграции со стороны Яндекс == | ||
=== Объединение аккаунтов === | === Объединение аккаунтов === | ||
Теперь свяжем Яндекс-аккаунт с аккаунтом, созданным в модуле ''node-red-contrib-alice''. | Теперь свяжем Яндекс-аккаунт с аккаунтом, созданным в модуле ''node-red-contrib-alice''. Проще всего это сделать через мобильное приложение: | ||
# Откройте '''приложение Яндекс'''. | # Откройте '''приложение Яндекс'''. | ||
# Перейдите в раздел '''Устройства'''. | # Перейдите в раздел '''Устройства'''. | ||
# Откроется страница '''Мой дом''', нажмите '''+''' и выберите '''Устройство умного дома'''. | # Откроется страница '''Мой дом''', нажмите '''+''' и выберите '''Устройство умного дома'''. | ||
# На странице '''Добавить устройства''' | # На странице '''Добавить устройства''' выберите '''NodeRed Home''' из списка производителей. | ||
# Нажмите на кнопку '''Привязать к Яндексу''', откроется сайт node-red-alice.ru | # Нажмите на кнопку '''Привязать к Яндексу''', откроется сайт node-red-alice.ru формой для ввода учётных данных. | ||
# Введите в поле Email и пароль данные, которые вы использовали в разделе [[#Настройка учётной записи для модуля|Настройка учётной записи для модуля]]. | # Введите в поле Email и пароль данные, которые вы использовали в разделе [[#Настройка учётной записи для модуля|Настройка учётной записи для модуля]]. | ||
# Нажмите кнопку '''Объединить''', откроется страница '''Яндекс.Паспорт''', где нужно разрешить доступ к учётной записи Яндекс. | # Нажмите кнопку '''Объединить''', откроется страница '''Яндекс.Паспорт''', где нужно разрешить доступ к учётной записи Яндекс. | ||
Строка 171: | Строка 104: | ||
# Через пару секунд вы увидите устройство, которое создавали в разделе [[#Виртуальное Яндекс-устройство|Виртуальное Яндекс-устройство]]. | # Через пару секунд вы увидите устройство, которое создавали в разделе [[#Виртуальное Яндекс-устройство|Виртуальное Яндекс-устройство]]. | ||
Настройка завершена. | |||
=== Добавление новых устройств === | === Добавление новых устройств === | ||
После объединения аккаунтов добавлять новые устройства просто: | После объединения аккаунтов добавлять новые устройства просто: создаёте виртуальные Яндекс-устройства в Node-RED на стороне контроллера и обновляете список на стороне Яндекс: | ||
# Откройте '''приложение Яндекс'''. | |||
# Перейдите в раздел '''Устройства'''. | |||
# | # Откроется страница '''Мой дом''', нажмите '''+''' и выберите '''Устройство умного дома'''. | ||
# | # На странице '''Добавить устройства''', в разделе '''Связанные аккаунты''' найдите '''NodeRed Home''' и нажмите кнопку '''Обновить'''. | ||
# | |||
# | |||
После этого в приложении Яндекс появятся новые устройства. | После этого в приложении Яндекс появятся новые устройства. | ||
== Полезные ссылки == | == Полезные ссылки == | ||
Версия 16:09, 31 января 2022
Это черновик страницы. Последняя правка сделана 31.01.2022 пользователем A.Degtyarev.
Подготовка
Алиса — это голосовой помощник от Яндекс, который с помощью навыков может управлять устройствами умного дома. Все добавленные устройства будут видны в приложении Яндекс, что позволит вам управлять ими удалённо.
Для настройки голосового помощника Алисы от Яндекс на контроллере Wiren Board нам понадобится:
- установленный Node-RED,
- настроенный модуль WB Nodes,
- модуль node-red-contrib-alice,
- Яндекс-аккаунт и мобильное приложение Яндекс.
На контроллере должен быть доступ к интернету — Алиса без него не работает.
Настройка делается через встроенный в Node-Red веб-интерфейс, который доступен по адресу http://wb-ip-address:1880, например, http://192.168.42.1:1880.
В примерах мы будем создавать флоу (flows) — это блок-схемы процесса.
Установка модуля
Чтобы Node-RED смог работать с Алисой, установите модуль node-red-contrib-alice
:
- Зайдите в веб-интерфейс Node-RED.
- В правом верхнем углу вызовите меню.
- В открывшемся окне выберите вкладку Управление палитрой (Manager palette).
- Перейдите на вкладку Установка (Install), введите в поле поиска contrib-alice и нажмите на клавиатуре Enter.
- Установите пакет с названием node-red-contrib-alice.
- Закройте окно с настройками. Установка модуля завершена.
После установки, в левой панели появится секция alice.
Настройка учётной записи для модуля
Перед тем, как передавать данные из контроллера в Алису, нам нужно настроить ноду alice-service:
- Перетяните в рабочую область ноду On_Off.
- Дважды кликните на ней — откроется окно Edit On_Off node.
- В поле Device нажмите на кнопку с карандашом, откроется окно Edit alice-device node.
- Теперь в поле Credentials нажмите на кнопку с карандашом, откроется окно Edit alice-service node.
- Здесь нужно настроить учётную запись на сервере модуля
node-red-contrib-alice
:- Если у вас нет учётной записи:
- нажмите кнопку Register,
- заполните поля Email и Password,
- нажмите по очереди на кнопки Signup и потом Add.
- Если у вас уже есть учётная запись:
- заполните поля Email и Password,
- нажмите на кнопку Add.
- Если у вас нет учётной записи:
- Вы вернётесь в окно Edit alice-device node в котором заполните поля и добавьте новое устройство или нажмите Cancel для выхода.
Настройка учётной записи завершена, теперь можем добавлять новые устройства, которыми будем управлять через Алису и приложение Яндекс.
Добавление устройства
Добавим переключатель, который будет управлять зуммером контроллера.
Виртуальное Яндекс-устройство
Сперва настраиваем виртуальное Яндекс-устройство, так как у нас переключатель, то выберем ноду On_Off:
- Перетяните в рабочую область ноду On_Off.
- Дважды кликните на ней — откроется окно Edit On_Off node.
- В поле Device нажмите на кнопку с карандашом, откроется окно Edit alice-device node, где:
- В поле Credentials выберите созданную ранее учётную запись.
- И заполните поля:
- Name — имя устройства, которое будет видно в приложении Яндекс.
- Room — виртуальная комната, в которой находится устройство.
- Type — тип устройства.
- Нажмите на кнопку Add, чтобы сохранить изменения.
- Вы вернётесь в окно Edit On_Off node, в котором поставьте галочку Always answer Alice with success, которая скажет Алисе не ждать ответа от устройства после отправки команды. Это нужно нам, так как мы не задействуем вход ноды On_Off.
Теперь Алиса знает, что у нас есть устройство, но оно пока ничего не делает.
Настройки связи с контроллером
Для связи с контроллером нам понадобится WB Nodes, который должен быть уже установлен и настроен.
Например, подключим встроенный зуммер контроллера:
- Перетяните в рабочую область ноду out, которая находится слева в группе Wiren Board.
- Дважды кликните на ней — откроется окно Edit out node, где укажите:
- Name — имя, например, Buzzer.
- Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
- Channel — выберитев открывшемся списке mqtt-топик buzzer/enabled. Если список пуст, нажмите кнопку Refresh Device List.
- Command — выберите /on.
- Payload — должно быть выбрано msg.payload
- Чтобы сохранить, нажмите кнопку Done.
Теперь, когда у нас настроены виртуальное Яндекс-устройство и один из mqtt-топиков контроллера Wiren Board, нам нужно их связать между собой.
Перед связыванием нужно учесть две вещи:
- виртуальное Яндекс-устройство на выход отправляет сигнал true/false
- mqtt-топик контроллера принимает сигнал 1/0.
Поэтому нам понадобится конвертер сообщений:
- Перетяните в рабочую область ноду change, которая находится слева в группе function.
- Дважды кликните на ней — откроется окно Edit change node, и настройте её так же, как на картинке:
- Нажмите кнопку Done. Конвертер готов.
Теперь соедините ноды между собой в таком порядке: выход ноды On_Off → Конвертер → вход ноды mqtt-канала контроллера.
Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку Deploy.
Настройка интеграции со стороны Яндекс
Объединение аккаунтов
Теперь свяжем Яндекс-аккаунт с аккаунтом, созданным в модуле node-red-contrib-alice. Проще всего это сделать через мобильное приложение:
- Откройте приложение Яндекс.
- Перейдите в раздел Устройства.
- Откроется страница Мой дом, нажмите + и выберите Устройство умного дома.
- На странице Добавить устройства выберите NodeRed Home из списка производителей.
- Нажмите на кнопку Привязать к Яндексу, откроется сайт node-red-alice.ru формой для ввода учётных данных.
- Введите в поле Email и пароль данные, которые вы использовали в разделе Настройка учётной записи для модуля.
- Нажмите кнопку Объединить, откроется страница Яндекс.Паспорт, где нужно разрешить доступ к учётной записи Яндекс.
- Если объединение аккаунтов прошло успешно, появится кнопка Обновить список устройств. Нажмите на неё.
- Через пару секунд вы увидите устройство, которое создавали в разделе Виртуальное Яндекс-устройство.
Настройка завершена.
Добавление новых устройств
После объединения аккаунтов добавлять новые устройства просто: создаёте виртуальные Яндекс-устройства в Node-RED на стороне контроллера и обновляете список на стороне Яндекс:
- Откройте приложение Яндекс.
- Перейдите в раздел Устройства.
- Откроется страница Мой дом, нажмите + и выберите Устройство умного дома.
- На странице Добавить устройства, в разделе Связанные аккаунты найдите NodeRed Home и нажмите кнопку Обновить.
После этого в приложении Яндекс появятся новые устройства.