Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/munrexio/yandex2mqtt
Bridge from Yandex Smart Home to MQTT
https://github.com/munrexio/yandex2mqtt
Last synced: 3 months ago
JSON representation
Bridge from Yandex Smart Home to MQTT
- Host: GitHub
- URL: https://github.com/munrexio/yandex2mqtt
- Owner: munrexio
- License: mit
- Created: 2019-07-03T17:59:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T22:00:51.000Z (almost 2 years ago)
- Last Synced: 2024-05-27T12:01:48.932Z (5 months ago)
- Language: JavaScript
- Size: 124 KB
- Stars: 99
- Watchers: 6
- Forks: 70
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-alice - munrexio/yandex2mqtt - Мост из Яндекс УД в MQTT на Node.js (Умный дом / Open-source навыки)
README
# yandex2mqtt
Мост из Яндекс УД в MQTT на Node.jsСтатья на Хабре https://habr.com/ru/post/465537/
## Установка
Настраиваем репозиторий Node JS
curl -sL https://deb.nodesource.com/setup_10.x | bash -
Устанавливаем необходимые компоненты
apt-get install -y nodejs git make g++ gcc build-essential
Копируем файлы
git clone https://github.com/munrexio/yandex2mqtt.git /mnt/data/root/yandex2mqtt
Задаём права.
chown -R root:root /mnt/data/root/yandex2mqtt
Заходим в директорию и запускаем установку
cd /mnt/data/root/yandex2mqtt
npm install
Запускаем мост (Перед запуском мост нужно настроить)
npm start
## Автозапуск
В папке /etc/systemd/system/ создайте файл yandex2mqtt.service и впишите в него:
[Unit]
Description=yandex2mqtt
After=network.target
[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/mnt/data/root/yandex2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Для включения сервиса впишите в консоль:
systemctl enable yandex2mqtt.service
После этого можно управлять командами:
service yandex2mqtt start
service yandex2mqtt stop
service yandex2mqtt restart
## Настройка
Для работы моста необходим валидный ssl сертификат. Если нет своего домена и белого IP адреса можно воспользоваться Dynamic DNS сервисами. (на пример noip.com). Для получения сертификата можно воспользоваться приложением certbot.
Все основные настройки моста прописываются в файл config.js. Перед запуском обязательно отредактируйте настройки.
1) MQTT: Прописываем параметры своего MQTT сервера.
2) https: укажите путь к корневому SSL сертификату и файлу с ключами, порт по которому будет доступен плагин.
3) clients: Укажите произвольные параметры клиента. (Будет нужно для настройки навыка в Яндексе)
4) users: Укажите параметры пользователей для доступа к мосту.
5) devices: Укажите необходимые девайсы и топики MQTT для управления. В конфиге уже вписанно несколько устройств для примера их конфигурации.
Чуть позже добавлю шаблоны устройств.
Для лучшего понимания советую посмотреть документацию от Яндекса.
https://yandex.ru/dev/dialogs/alice/doc/smart-home/concepts/main-objects-docpage/
https://yandex.ru/dev/dialogs/alice/doc/smart-home/concepts/on_off-docpage/
## Создание навыка
Заходим на https://dialogs.yandex.ru/developer/skills => Создать диалог => Умный дом
Название: Любое
Endpoint URL: https://вашдомен/provider
Ставим галку "Не показывать в каталоге"
Имя разработчика: Ваше имя
Нажимаем "Добавить новую" связку
Название: Любое
Идентификатор и секрет : берем из конфигурации yandex2mqtt в блоке "clients".
URL авторизации: https://вашдомен/dialog/authorize
URL для получения токена: https://вашдомен/oauth/token
Сохраняем связку и выбираем её в навыке. Выбираем иконку, пишем описание, нажимаем "Сохранить".
Дальше жмём "На модерацию" и сразу "Опубликовать". Готово.
Навык появится в приложении Яндекс в разделе "Устройства" => умный дом.
Свяжите аккаунты и обновите список устройств. После этого устройства будут доступны для управления через Алису.