|
|
(не показано 77 промежуточных версий 3 участников) |
Строка 1: |
Строка 1: |
| | {{Draft}} |
| {{DISPLAYTITLE: Настройка Алисы на контроллере Wiren Board}} | | {{DISPLAYTITLE: Настройка Алисы на контроллере Wiren Board}} |
| [[Image: yandex-application.png |300px|thumb|right| Список устройств в приложении Яндекс ]]
| |
|
| |
| == Описание ==
| |
| {{note|info|Обмен данными между контроллером и Яндексом будет идти через сторонний сервис, который мы не контролируем и не можем гарантировать конфиденциальность. Если это вам не подходит, используйте метод описанный в статье [https://habr.com/ru/post/465537/ Яндекс: умный дом по взрослому] — он сложнее и требует затрат, но безопасней. Форк yandex2mqtt с исправлениями: https://github.com/lasthead0/yandex2mqtt}}
| |
| Алиса — это облачный голосовой помощник от Яндекс, который с помощью навыков может управлять устройствами умного дома. Все добавленные устройства будут видны в приложении [[Yandex-smart-home |Дом с Алисой]], что позволит вам управлять ими удалённо со своего смартфона, умных колонок с Алисой, Яндекс.Модуля и т.п.
| |
|
| |
| Описанный здесь способ не требует наличия своего домена и сертификата — это на себя берёт сайт https://node-red-alice.ru/, где также перечислены тарифы за использование.
| |
|
| |
| В инструкции используется сторонний модуль с платной подпиской '''node-red-contrib-alice''' у которого есть свой Телеграм-канал, где вы можете задать вопросы и поделиться опытом: [https://t.me/nodered_home_chat NodeRed Home Chat].
| |
|
| |
|
| == Подготовка == | | == Подготовка == |
| {{YouTube
| | Для настройки голосового помощника Алисы от Яндекс на контроллере [[Wiren Board]] нам понадобится: |
| | link= https://youtu.be/dtObx94vM3s
| | * установленный [[Node-Red | Node-RED]], |
| | text= Как настроить Алису на контроллере Wiren Board
| | * настроенный модуль [[Node-Red#WB_Nodes |WB Nodes]], |
| | width= 350
| | * модуль [https://flows.nodered.org/node/node-red-contrib-alice node-red-contrib-alice] |
| }}
| | * и созданный Telegram-бот. |
| Для настройки Алисы на контроллере [[Wiren Board]] с помощью Node-RED нам понадобится: | |
| * установленный Node-RED и [[Node-Red | настроенный модуль WB Nodes]], | |
| * модуль [https://flows.nodered.org/node/node-red-contrib-alice node-red-contrib-alice] — его мы установим ниже, | |
| * Яндекс-аккаунт и мобильное приложение Яндекс. | |
|
| |
|
| На контроллере должен быть доступ к интернету — Алиса без него не работает.
| | {{Wbincludes:Node-RED Intro}} |
|
| |
|
| {{Wbincludes:Node-RED Intro}} | | {{Wbincludes:Node-RED Intro}} |
|
| |
|
| == Установка модуля == | | == Установка модуля == |
| [[Image: installing node-red-contrib-alice.png|300px|thumb|right| Установка модуля node-red-contrib-alice]]
| |
| Чтобы Node-RED мог работать с Алисой, установите модуль <code>node-red-contrib-alice</code>:
| |
| {{Node-RED Installing plugin
| |
| |search= contrib-alice
| |
| |name= node-red-contrib-alice
| |
| }}
| |
|
| |
| После установки, в левой панели появится секция ''alice''.
| |
|
| |
| == Настройка учётной записи для модуля ==
| |
| Перед тем, как передавать данные из контроллера в Алису, нам нужно настроить ноду '''alice-service''':
| |
| # Перетяните в рабочую область ноду '''On_Off'''.
| |
| # Дважды кликните на ней — откроется окно '''Edit On_Off node'''.
| |
| # В поле '''Device''' нажмите на кнопку с карандашом, откроется окно ''Edit alice-device node''.
| |
| # Теперь в поле '''Credentials''' нажмите на кнопку с карандашом, откроется окно ''Edit alice-service node''.
| |
| # Здесь нужно настроить учётную запись на сервере модуля <code>node-red-contrib-alice</code>:
| |
| #* Если у вас нет учётной записи:
| |
| #*# нажмите кнопку '''Register''',
| |
| #*# заполните поля ''Email и ''Password'',
| |
| #*# нажмите по очереди на кнопки '''Signup''' и потом '''Add'''.
| |
| #* Если у вас уже есть учётная запись:
| |
| #*# заполните поля ''Email'' и ''Password'',
| |
| #*# нажмите на кнопку '''Add'''.
| |
| # Вы вернётесь в окно ''Edit alice-device node'' в котором заполните поля и добавьте новое устройство или нажмите '''Cancel''' для выхода.
| |
|
| |
| Настройка учётной записи завершена, теперь можем добавлять новые устройства, которыми можно будет управлять с любого устройства с Алисой или через приложение Яндекс.
| |
|
| |
| <gallery mode="packed" heights="150px" caption="Настройка ноды alice-service">
| |
| Image: edit-on_off-node.png | Редактирование ноды ''On_Off''
| |
| Image: add-alice-device-node.png | Редактирование ноды ''alice-device''
| |
| Image: add-alice-service-node-1.png | Переход к созданию учётной записи
| |
| Image: add-alice-service-node-2-register.png | Ввод Email и пароля
| |
| Image: add-alice-service-node-3-register.png | Подтверждение введённых данных
| |
| Image: add-alice-service-node-4.png | Окончание настройки
| |
| </gallery>
| |
|
| |
| == Добавление устройства ==
| |
| === Как это работает ===
| |
| Добавление новых устройств в общем случае выглядит так:
| |
| # Описываем на контроллере виртуальное Яндекс-устройство.
| |
| # Прописываем логику, которое это устройство реализует, например, включение зуммера.
| |
| # Публикуем флоу кнопкой ''Deploy''.
| |
| # В мобильном приложении Яндекс обновляем список устройств.
| |
|
| |
| В примере ниже мы добавим переключатель, который будет управлять зуммером контроллера.
| |
|
| |
| === Виртуальное Яндекс-устройство ===
| |
| Сперва настраиваем виртуальное Яндекс-устройство — так как у нас переключатель, то выберем ноду '''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'''.
| |
|
| |
| <gallery mode="packed" heights="150px" caption="Настройка Яндекс-устройства">
| |
| Image: edit-on_off-node.png | Редактирование ноды ''On_Off''
| |
| Image: add-alice-device.png | Редактирование ноды ''alice-device''
| |
| Image: add-alice-device done.png | Окончание настройки
| |
| </gallery>
| |
|
| |
| === Управление устройствами умного дома ===
| |
| [[Image: edit-wb-out-node.png |250px|thumb|right| Настройка ''out node'' ]]
| |
| Чтобы управлять устройствами, подключенными к контроллеру, нам понадобится '''WB Nodes''', который должен быть установлен и настроен заранее.
| |
|
| |
| Подключим встроенный зуммер контроллера:
| |
| {{Node-RED Tuning wb-out
| |
| |name = Buzzer
| |
| |mqtt-topic = buzzer/enabled
| |
| }}
| |
|
| |
| [[Image: change-node-converter-bool-to-number.png |250px| thumb | right| Настройка ноды ''change'']]
| |
|
| |
| Теперь, когда у нас настроены виртуальное Яндекс-устройство и один из mqtt-топиков контроллера Wiren Board, нам нужно их связать между собой.
| |
|
| |
| Перед связыванием нужно учесть, что:
| |
| # виртуальное Яндекс-устройство на выход отправляет сигнал '''true/false'''
| |
| # mqtt-топик контроллера принимает сигнал '''1/0'''.
| |
|
| |
| Поэтому нам понадобится конвертер сообщений:
| |
| # Перетяните в рабочую область ноду '''change''', которая находится слева в группе '''function'''.
| |
| # Дважды кликните на ней — откроется окно '''Edit change node''', укажите имя и настройте правила в блоке '''Rules''':
| |
| #* Change → msg.payload → Search for, boolean: false → Replace with, number: 0
| |
| #* Change → msg.payload → Search for, boolean: true → Replace with, number: 1
| |
| # Нажмите кнопку '''Done'''. Конвертер готов.
| |
| [[Image: alice-flow.png |250px| thumb | right| Внешний вид флоу со связями]]
| |
| Теперь соедините ноды между собой в таком порядке: выход ноды '''On_Off''' → '''Конвертер''' → вход ноды '''out'''.
| |
|
| |
| Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку '''Deploy'''.
| |
|
| |
| === Обратная связь ===
| |
| [[Image: nr-alice-feedback-1.png |250px|thumb|right| Настройка ноды ''in node'' ]]
| |
| [[Image: nr-alice-feedback-2.png |250px|thumb|right| Настройка ноды ''change'' ]]
| |
| [[Image: nr-alice-feedback-3.png |250px|thumb|right| Настройка ноды ''On_Off'' ]]
| |
| В примере выше мы настроили управление устройством умного дома, но не сделали считывание его состояния — дополним наше флоу и добавим отправку состояния зуммера Алисе.
| |
|
| |
| Настраиваем получение значений из mqtt-топика:
| |
| {{Node-RED Tuning wb-in
| |
| |name = Buzzer
| |
| |mqtt-topic = buzzer/enabled
| |
| }}
| |
|
| |
| Полученное значение мы отправим в ноду '''On_Off''', которая передаст информацию в облако, но перед этим нужно учесть три момента:
| |
| # нужно включить в ноде '''On_Off''' контроль устройства по сигналу на входе,
| |
| # виртуальное Яндекс-устройство на вход принимает сигнал '''true/false''',
| |
| # нода '''in''' отдаёт сигнал '''1/0'''.
| |
|
| |
| Сперва включим контроль устройства в ноде '''On_Off''':
| |
| # Дважды кликните на ноде '''On_Off'''.
| |
| # Снимите флажок '''Always answer Alice with success''' — теперь Алиса будет ждать ответа от устройства при обращении к нему.
| |
| # Нажмите кнопку '''Done'''.
| |
|
| |
| Теперь настроим конвертер сообщений:
| |
| # Перетяните в рабочую область ноду '''change''', которая находится слева в группе '''function'''.
| |
| # Дважды кликните на ней — откроется окно '''Edit change node''', укажите имя и настройте правила в блоке '''Rules''':
| |
| #* Change → msg.payload → Search for, number: 1 → Replace with, boolean: true
| |
| #* Change → msg.payload → Search for, number: 0 → Replace with, boolean: false
| |
| # Нажмите кнопку '''Done'''. Конвертер готов.
| |
|
| |
| Теперь соедините ноды между собой в таком порядке: выход ноды '''in''' → '''Конвертер''' → вход ноды '''On_Off'''.
| |
|
| |
| [[Image: flow feedback.png |600px| Внешний вид флоу с обратной связью ]]
| |
|
| |
| Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку '''Deploy'''.
| |
|
| |
| == Настройка интеграции со стороны Яндекс ==
| |
| === Объединение аккаунтов ===
| |
| Теперь свяжем Яндекс-аккаунт с аккаунтом, созданным в модуле ''node-red-contrib-alice''.
| |
|
| |
| Это делается один раз через мобильное приложение:
| |
| # Откройте '''приложение Яндекс'''.
| |
| # Перейдите в раздел '''Устройства'''.
| |
| # Откроется страница '''Мой дом''', нажмите '''+''' и выберите '''Устройство умного дома'''.
| |
| # На странице '''Добавить устройства''', выберите '''NodeRed Home''' из списка производителей.
| |
| # Нажмите на кнопку '''Привязать к Яндексу''', откроется сайт node-red-alice.ru с формой для ввода учётных данных.
| |
| # Введите в поле Email и пароль данные, которые вы использовали в разделе [[#Настройка учётной записи для модуля|Настройка учётной записи для модуля]].
| |
| # Нажмите кнопку '''Объединить''', откроется страница '''Яндекс.Паспорт''', где нужно разрешить доступ к учётной записи Яндекс.
| |
| # Если объединение аккаунтов прошло успешно, появится кнопка '''Обновить список устройств'''. Нажмите на неё.
| |
| # Через пару секунд вы увидите устройство, которое создавали в разделе [[#Виртуальное Яндекс-устройство|Виртуальное Яндекс-устройство]].
| |
|
| |
| Объединение аккаунтов завершено, теперь можно управлять умными домом через устройства с Алисой или приложение Яндекс.
| |
|
| |
| <gallery mode="packed" heights="200px" caption="Настройка в приложении Яндекс">
| |
| Image: mobile-yandex-1-devices.png | Главный экран
| |
| Image: mobile-yandex-2-home.png | Мой дом
| |
| Image: mobile-yandex-3-dev.png | Поиск NodeRed Home
| |
| Image: mobile-yandex-4-nrhome.png | Привязка аккаунта
| |
| Image: mobile-yandex-5-nralice-site.png | Авторизация на сайте сервиса
| |
| Image: mobile-yandex-6-confirm.png | Подтвердить доступ
| |
| Image: mobile-yandex-7-update-device-list.png | Обновление списка устройств
| |
| Image: mobile-yandex-8-success.png | Устройства подключены
| |
| </gallery>
| |
|
| |
| === Добавление новых устройств ===
| |
| После объединения аккаунтов добавлять новые устройства просто:
| |
| # Создайте виртуальные Яндекс-устройства в Node-RED на стороне контроллера и опишите логику.
| |
| # Обновите список устройств на стороне Яндекс:
| |
| #* Откройте '''приложение Яндекс'''.
| |
| #* Перейдите в раздел '''Устройства'''.
| |
| #* Откроется страница '''Мой дом''', нажмите '''+''' и выберите '''Устройство умного дома'''.
| |
| #* На странице '''Добавить устройства''', в разделе '''Связанные аккаунты''' найдите '''NodeRed Home''' и нажмите кнопку '''Обновить'''.
| |
|
| |
|
| После этого в приложении Яндекс появятся новые устройства.
| | == Создание ноды для Алисы == |
|
| |
|
| == Полезные ссылки == | | == Полезные ссылки == |
| * [https://yandex.ru/support/smart-home/third-party/turn-on.html Яндекс.Справка: Установка и настройка умных устройств]
| |
| * [https://support.wirenboard.com/t/dimmer-wb-mdm3-i-plagin-node-red-contrib-alice/10315/4 Диммер WB-MDM3 и плагин node-red-contrib-alice]
| |
| * [https://t.me/nodered_home_chat Телеграм-канал автора модуля].
| |