Алиса и ioBroker
Содержание
Применение информации с этой страницы требует специальных знаний и навыков
Всё описанное на этой странице вы производите на свой страх и риск, включая нарушение работы программного обеспечения и выход из строя оборудования, а также риск поражения током и травмы.
Материал носит информационный характер, и не является прямым указанием к действию!
Небольшое введение
ioBroker — открытая IoT-платформа на Node.js (желательно от 6х), что позволяет развернуть практически на любом железе и ОС (ARM, x86, Windows, Linux, Raspberry, Windows-Server, Synology-NAS, MacOS), универсально управляя практически всеми функциями через web. Система легко масштабируема - от Raspberry Pi с простыми задачами до достаточно сложного и мощного сервера.
C помощью плагинов ("драйверов") ioBroker может общаться с системами автоматизации (HomeMatic, KNX, FS20, EnOcean), мультимедиа (Sonos, Dreambox) и различными AV-ресиверами/SmartTV, облачными сервисами и БД (MySQL, Graphite), а также Telegram-ботами. Средний расход памяти для одного драйвера лежит в пределах 10-60 Мб.
В 2017 "Smart Home Initiative Deutschland e.V." признала ioBroker лучшим системным решением в домашней автоматизации и присвоила "SmartHome Deutschland Award 2017".
Шаги по подключению
Статья основана на инструкциях Ильи Кирова, на текущий момент они не завершены, автор просил не оставлять прямые ссылки.
Регистрация
Предельно простая:
- Регистрируемся на сайте https://iobroker.pro/intro
- Подтверждаем свой почтовый адрес.
Установка адаптера ioBroker.iot
Рекомендую устанавливать версию адаптера не ниже 1.0.4. Если такой версии нет в доступных драйверах, переключитесь на latest репозиторий, или установите с github: https://github.com/ioBroker/ioBroker.iot
- В ассистентах отмечаем Yandex Алиса
- Указываем логин-пароль подключения к ioBroker.pro
- Жмём "Сохранить" - адаптер перезапустится.
Если индикатор состояния станет “желтым” - в логах появятся ошибки, позволяющие диагностировать проблему.
В случае успешного старта на почту придет индивидуальный пароль для этого экземпляра ("инстанса") ioBroker.iot.
Если пароль не пришел или адаптер не подключился, нужно запросить его еще раз. Для этого нужно поставить галочку в настройках и нажать кнопку "Получить новые сертификаты подключения".
Дальше аккаунты ioBroker и Яндекса нужно объединить в приложении Яндекс (процесс аналогичен подключению других навыков УДЯ, например Подключение устройств eWeLink).
Определение устройств
Устройство в ioBroker представляется набором состояний, характеризующих его. Другими словами, для ассистентов нужно "собрать" устройство из различных состояний.
В случае с Алисой используется новый механизм "угадывания" устройств - по доступным состояниям устройства пытаются определиться сами. Но для этого необходимо указать состояниям их роль, а также функцию и комнату.
Хочется больше? Приватный навык и 2 экземпляра
Если вы хотите подключить к Алисе еще один экземпляр ("инстанцию") ioBroker - например, дома и на даче - то возникнут проблемы. Дважды к Алисе официальный навык с разными реквизитами не подключить. Поэтому создадим свой навык, приватный (так же можно сделать и для одного экземпляра, если не хотите использовать облачный сервис ioBroker.
Для этого понадобится:
- свой домен,
- сертификат для защищенного соединения https
- проброс запросов с этого домена до нужного экземпляра ioBroker.
Обработчик локального навыка
Для того, чтобы получить и обработать запросы с сервера Алисы в ioBroker нужно установить и настроить адаптер по этой ссылке
Здесь нужно выбрать установленный адаптер iot (необязательно подключать его к облачному сервису iobroker.pro), которому будут пересылаться запросы для обработки.
Можно указать префикс адреса, с которого приходят запросы (можно будет использовать в адресах навыка). Обязательно указать порт, по которому будет запущен сервер, принимающий внешние запросы.
После запуска адаптер будет отвечать по https://ваш_адрес:8088/dacha на запросы Алисы. Осталось вывести эти адрес и порт на ваш домен.
Создание связки ключей
Заходим в платформу Яндекс.Диалоги и создаём связку аккаунтов (чтобы облачный сервер ioBroker и Яндекс.Диалоги доверяли друг другу).
- Открываем https://dialogs.yandex.ru/developer/settings/oauth
- Нажимаем “Добавить связку аккаунтов”
- Заполняем параметры:
- Название - любое как вам нравится.
- Идентификатор приложения - “https://social.yandex.net/”
- URL авторизации - домен и адрес до сервера + “/auth”
- URL для получения токена - домен и адрес до сервера + “/token”
- URL для обновления токена - домен и адрес до сервера + “/token”
Создание локального навыка для Алисы
В Яндекс.Диалогах по адресу dialogs.yandex.ru/developer создаём новый диалог “Умный дом”.
- Заполняем параметры:
- Название - наименование поставщика, которое будет видно в списке ваших навыков.
- Endpoint URL - домен и адрес до сервера.
- Заполняем описание навыка.
- Выбираем картинку для обозначения.
- Так как навык доступен только нам (локальный), ставим галочку “Не показывать в каталоге”.
- Обязательно выбираем связку аккаунтов, которую создали чуть ранее.
Готово!
Отправляем навык на модерацию. Модерация и публикация локального навыка проходят мгновенно и автоматически.