Node-RED Alice: различия между версиями

Материал из Wiren Board
Строка 76: Строка 76:
</gallery>
</gallery>


=== Настройка связи с контроллером ===
=== Управление устройствами умного дома ===
[[Image: edit-wb-out-node.png |300px|thumb|right| Настройка ''out node'' ]]
[[Image: edit-wb-out-node.png |300px|thumb|right| Настройка ''out node'' ]]
Для связи с контроллером нам понадобится '''WB Nodes''', который должен быть уже установлен и настроен.
Нам понадобится '''WB Nodes''', который должен быть уже установлен и настроен.


Например, подключим встроенный зуммер контроллера:
Например, подключим встроенный зуммер контроллера:

Версия 19:02, 31 января 2022

Список устройств в приложении Яндекс

Подготовка

Алиса — это голосовой помощник от Яндекс, который с помощью навыков может управлять устройствами умного дома. Все добавленные устройства будут видны в приложении Яндекс, что позволит вам управлять ими удалённо.

Для настройки голосового помощника Алисы от Яндекс на контроллере 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-contrib-alice

Чтобы Node-RED смог работать с Алисой, установите модуль node-red-contrib-alice:

  1. Зайдите в веб-интерфейс Node-RED.
  2. В правом верхнем углу вызовите меню.
  3. В открывшемся окне выберите вкладку Управление палитрой (Manager palette).
  4. Перейдите на вкладку Установка (Install), введите в поле поиска contrib-alice и нажмите на клавиатуре Enter.
  5. Установите пакет с названием node-red-contrib-alice.
  6. Закройте окно с настройками. Установка модуля завершена.

После установки, в левой панели появится секция alice.

Настройка учётной записи для модуля

Перед тем, как передавать данные из контроллера в Алису, нам нужно настроить ноду alice-service:

  1. Перетяните в рабочую область ноду On_Off.
  2. Дважды кликните на ней — откроется окно Edit On_Off node.
  3. В поле Device нажмите на кнопку с карандашом, откроется окно Edit alice-device node.
  4. Теперь в поле Credentials нажмите на кнопку с карандашом, откроется окно Edit alice-service node.
  5. Здесь нужно настроить учётную запись на сервере модуля node-red-contrib-alice:
    • Если у вас нет учётной записи:
      1. нажмите кнопку Register,
      2. заполните поля Email и Password,
      3. нажмите по очереди на кнопки Signup и потом Add.
    • Если у вас уже есть учётная запись:
      1. заполните поля Email и Password,
      2. нажмите на кнопку Add.
  6. Вы вернётесь в окно Edit alice-device node в котором заполните поля и добавьте новое устройство или нажмите Cancel для выхода.

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

Добавление устройства

Добавим переключатель, который будет управлять зуммером контроллера.

Виртуальное Яндекс-устройство

Сперва настраиваем виртуальное Яндекс-устройство — так как у нас переключатель, то выберем ноду On_Off:

  1. Перетяните в рабочую область ноду On_Off.
  2. Дважды кликните на ней — откроется окно Edit On_Off node.
  3. В поле Device нажмите на кнопку с карандашом, откроется окно Edit alice-device node, где:
    • В поле Credentials выберите созданную ранее учётную запись.
    • И заполните поля:
      • Name — имя устройства, которое будет видно в приложении Яндекс.
      • Room — виртуальная комната, в которой находится устройство.
      • Type — тип устройства.
  4. Нажмите на кнопку Add, чтобы сохранить изменения.
  5. Вы вернётесь в окно Edit On_Off node, в котором поставьте галочку Always answer Alice with success, которая скажет Алисе не ждать ответа от устройства после отправки команды. Это нужно нам, так как мы не задействуем вход ноды On_Off.

Теперь Алиса знает, что у нас есть устройство, но оно пока ничего не делает.

Управление устройствами умного дома

Настройка out node

Нам понадобится WB Nodes, который должен быть уже установлен и настроен.

Например, подключим встроенный зуммер контроллера:

  1. Перетяните в рабочую область ноду out, которая находится слева в группе Wiren Board.
  2. Дважды кликните на ней — откроется окно Edit out node, где укажите:
    • Name — имя, например, Buzzer.
    • Server — MQTT-сервер, связь с которым настраивается при установке модуля WB Nodes.
    • Channel — выберитев открывшемся списке mqtt-топик buzzer/enabled. Если список пуст, нажмите кнопку Refresh Device List.
    • Command — выберите /on.
    • Payload — должно быть выбрано msg.payload
  3. Чтобы сохранить, нажмите кнопку Done.
Настройка ноды change

Теперь, когда у нас настроены виртуальное Яндекс-устройство и один из mqtt-топиков контроллера Wiren Board, нам нужно их связать между собой.

Перед связыванием нужно учесть две вещи:

  1. виртуальное Яндекс-устройство на выход отправляет сигнал true/false
  2. mqtt-топик контроллера принимает сигнал 1/0.

Поэтому нам понадобится конвертер сообщений:

  1. Перетяните в рабочую область ноду change, которая находится слева в группе function.
  2. Дважды кликните на ней — откроется окно Edit change node, укажите имя и настройте правила в блоке Rules:
    • Change → msg.payload → Search for: false → Replace with: 0
    • Change → msg.payload → Search for: true → Replace with: 1
  3. Нажмите кнопку Done. Конвертер готов.
Внешний вид флоу со связями

Теперь соедините ноды между собой в таком порядке: выход ноды On_OffКонвертервход ноды mqtt-канала контроллера.

Чтобы опубликовать изменения, нажмите в правом верхнем углу кнопку Deploy.

Настройка интеграции со стороны Яндекс

Объединение аккаунтов

Теперь свяжем Яндекс-аккаунт с аккаунтом, созданным в модуле node-red-contrib-alice.

Это делается один раз через мобильное приложение:

  1. Откройте приложение Яндекс.
  2. Перейдите в раздел Устройства.
  3. Откроется страница Мой дом, нажмите + и выберите Устройство умного дома.
  4. На странице Добавить устройства, выберите NodeRed Home из списка производителей.
  5. Нажмите на кнопку Привязать к Яндексу, откроется сайт node-red-alice.ru с формой для ввода учётных данных.
  6. Введите в поле Email и пароль данные, которые вы использовали в разделе Настройка учётной записи для модуля.
  7. Нажмите кнопку Объединить, откроется страница Яндекс.Паспорт, где нужно разрешить доступ к учётной записи Яндекс.
  8. Если объединение аккаунтов прошло успешно, появится кнопка Обновить список устройств. Нажмите на неё.
  9. Через пару секунд вы увидите устройство, которое создавали в разделе Виртуальное Яндекс-устройство.

Объединение аккаунтов завершено, Алиса может управлять устройствами.

Добавление новых устройств

После объединения аккаунтов добавлять новые устройства просто: создаёте виртуальные Яндекс-устройства в Node-RED на стороне контроллера и обновляете список на стороне Яндекс:

  1. Откройте приложение Яндекс.
  2. Перейдите в раздел Устройства.
  3. Откроется страница Мой дом, нажмите + и выберите Устройство умного дома.
  4. На странице Добавить устройства, в разделе Связанные аккаунты найдите NodeRed Home и нажмите кнопку Обновить.

После этого в приложении Яндекс появятся новые устройства.

Полезные ссылки