translator, wb_editors
4544
правки
Matveevrj (обсуждение | вклад) |
|||
(не показано 75 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{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 | ||
* установленный | | link= https://youtu.be/dtObx94vM3s | ||
| text= Как настроить Алису на контроллере Wiren Board | |||
* модуль [https://flows.nodered.org/node/node-red-contrib-alice node-red-contrib-alice] | | width= 350 | ||
* | }} | ||
Для настройки Алисы на контроллере [[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}} | ||
Строка 13: | Строка 27: | ||
== Установка модуля == | == Установка модуля == | ||
[[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 | ||
Строка 21: | Строка 35: | ||
После установки, в левой панели появится секция ''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 Телеграм-канал автора модуля]. |