Найти в Дзене
Кириши HackerSpace

Яндекс станция Алиса + Arduino

Здравья желаю!

В данной статье попытаюсь вкратце рассказать как реализовать управление любым проектом на Arduino , esp8266 ну и тому подобных...

я использовал:

  • Яндекс станцию мини
  • Домашний сервер с Debian GNU/Linux
  • Docker образ с Home Assistant
  • Arduino Nano с радио модулем

Подключил к домашней сети Яндекс станцию, проверил на ней наличие интернет соединения (заодно чекнул порты)

-2

Далее развернул Docker образ с Home Assistant

достаточно удобная платформа управления умным домом, есть несколько вариантов установки (я выбрал Docker контейнер)

Home Assistant Installation Manual

Linux

(Для тех кому лень читать весь ман по способам установки и различиям, скажу сразу что Docker образ не имеет аддонов с помощью которых можно установить в HA няшный браузерный файловый редактор (File Editor)... так что редактировал файлы конфигурации "configuration.yaml" и "automation.yaml" я по старинке через vim)

После установки и проверки HA , создал в нём новую интеграцию с Яндекс Станцией

-3

Это пользовательская интеграция позаимствованная из данного репозитория

GitHub - AlexxIT/YandexStation: Управление Яндекс.Станцией и другими колонками с Алисой из Home Assistant
Скачал архив с файлами интеграции, распаковал и закинул в Docker в директорию /config/
-4

далее из веб-морды Home Assistant добавил интеграцию из списка к остальным

-5

Так как у нас нет доступа к контексту голосового сообщения, мы можем отслеживать только выполненные Алисой команды.

Например команда:

Сделай громче на 0

Не повлияет на уровень громкости, Выполнится в фоне , НО результат её выполнения мы отследим в Home Assistant и повесим на неё какое нибудь действие.

Погнали...

Заходим в приложение Умный дом с Алисой и создаём новый сценарий

-6

Сохраняем и идём в HA

Панель разработчика -> События

Подписываемся на событие "yandex_speaker" и озвучиваем команду

Включи подсветку

если всё норм, видим следующие данные:

-7

Отлично.

Дальше я воспользовался компонентом "rest_command" для того чтобы отправить GET запрос из Docker контейнера к своему php скрипту "lol.php" который отправляет команду включения подсветки на Arduino он имеет следующее содержание:

<?php
system('echo "send 12848524" > /dev/ttyUSB0 ');
?>

Принцип работы похож на управление подсветкой показанного мной в этом видео:

Кстати компонент "rest_command" тоже недоступен по умолчанию и его файлы придётся копировать в файловую систему Docker контейнера, отсюда:

https://github.com/home-assistant/core/tree/dev/homeassistant/components/rest_command

Вот сюда:

DockerID:/usr/src/homeassistant/homeassistant/components/rest_command

Затем прописать в "configuration.yaml"

-8

Содержимое "automations.yaml"

-9

И не стоит забывать о перезагрузке конфигурации после каждого редактирования конфигов )

Собственно вот что получилось в итоге:

Яндекс Алиса и Ардуино

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

угостив чашечкой кофе

Отдельно буду признателен и благодарен вам за лайк, репост или подписку ❤️

P.S. увеличить список отслеживаемых команд можно спец. символами !?!
Например:
"Сделай громче на 0"
"Сделай громче на 0!"
"Сделай громче на 0?!?"
Это всё резные команды ))) которые можно по разному обрабатывать