Подключение устройств ioBroker в Алису
Вступление
Не буду рассказывать о плюсах/минусах самой системы ioBroker, потому что банально не сравнивал сам: установил и пользуюсь по принципу "поставил - поехал". Эта глава скорее для тех, кто сомневается в преимуществах развёртывания локального сервера УД.
Итак, какие плюсы получает владелец своего сервера?
- Независимость от состояния китайских серверов (если речь идет об устройствах xiaomi, итд);
- Полный контроль над системой (нет фобии, что завтра те же сервера закроются и система рухнет);
- Нет зависимости от постоянно отваливающихся сторонних навыков (отвязать/привязать устройство, не помогло, удалил/добавил, не помогло, писать в поддержку, ждать, пробовать снова...);
- Нет зависимости от Интернета (даже когда нет связи с Яндексом и другими аккаунтами, локальный умный дом не перестанет работать, а управлять им в это время можно и кнопками);
- Развитые сценарии локального "самоуправления";
- Не нужно произносить лишних фраз "запусти навык...", "попроси %имя_навыка% включить..." (да, это можно частично прятать в сценариях);
- Не нужны громоздкие цепочки "Алиса - Навык - IFTTT и обратно". Каждый шлюз - это свой сервис, со своими правилами/требованиями/интересами и т.д.
Настройка адаптера
За основу взята (и доработана) статья "Алиса и ioBroker".
Создаём учётную запись в системе ioBroker
- Регистрируемся на сайте, подтверждаем почтовый ящик.
- Устанавливаем драйвер "Соединение Cloud IoT", заходим в настройки:
- В ассистентах отмечаем Yandex Алиса;
- Указываем логин-пароль подключения к ioBroker.pro;
- Жмём "Сохранить" (адаптер перезапустится).
Объединяем аккаунты в приложении Яндекс
- Открываем приложение Яндекса;
- Переходим в квазар - "Управление устройствами";
- "Добавить устройство" - "ioBroker";
- Вводим логин/пароль от учётной записи iobroker.pro
- Разрешаем доступ указанному устройству.
Если не удалось связать - поменяйте/установите в настройках телефона браузер по умолчанию и пробуйте снова, или воспользуйтесь веб-версией квазара Яндекса.
Настройки драйвера "IoT Assistants" в iob
Подготовительный этап:
- Открываем iobroker, делаем активную вкладку (если не было раньше) "Категории" и переходим в неё.
- Создаем комнаты, где планируется разместить умные устройства.
- Создаем для них функции: свет, отопление, жалюзи, техника и т.д.
- Открываем "Объекты" в ioBroker, и в каждом нужном нам устройстве выставляем "Функции" и "Комнату".
Теперь открываем настройки драйвера "IoT Assistants", во вкладке "устройства Алисы" должны появиться наши объекты.
Часть информации взята здесь: - "Драйвер IoT Assistants и Алиса" - "Алиса и ioBroker"
Примеры устройств и нюансы настройки
В данный момент у меня подключены:
- Подрозетники Sonoff;
- Шлюз Xiaomi, выполняющий роль ночника в комнате (с регулировкой яркости);
- Пылесос Xiaomi Mi Robot Vacuum 1 поколение;
- Выключатель Tuya;
Подрозетники sonoff
После того, как Вы объединили аккаунты iob и алисы, в настройках драйвера (см предыдущую иллюстрацию) должны появиться устройства.
- Находим подрозетники "sonoff", указываем ему имя, комнату (заданное внутри iob имя и остаётся внутри; включать голосом будете по тому имени, которое укажете в настройке устройства Алисы.
- Модель устройства перекочует из iob (удобно, сразу понятно, через что устройство прокинуто в Алису).
С недавним обновлением Яндекса, если устройство и колонка привязаны к определенной комнате (например, "гостиная"), достаточно сказать "Алиса, включи зеркало" - и у Вас включится "зеркало" в гостиной.
Шлюз Xiaomi в роли ночника
Шлюз заведен в iob через драйвер "mihome", в настройке достаточно указать IP-адрес шлюза и его токен (этим модифицированным приложением).
После связки аккаунтов Алисы и iob точно так же задаем комнату, имя.
Из интересного: можно управлять яркостью и цветом нашего "ночника".
Пылесос Xiaomi Mi Robot Vacuum 1 поколение
Мне было важно, чтобы пылесос запускал уборку в определенной комнате (зональная уборка). В первой версии этого пылесоса такой фичи нет.
Простейшее решение проблемы: в приложении mihome грузится карта (если не заглючит и не скажет, что карту забыл), затем ручками выбирается сектор и отправляется на уборку.
Круто, но нет. Чтобы стало круто, используем скрипты iobroker.
Нам понадобятся драйвера "mihome-vacuum" и "javascript" (предполагаем, что нужное, чтобы рулить скриптами в iob, у Вас имеется).
Скрипт до безобразия прост. Главное - раздобыть координаты комнаты и забиндить их в скрипт. Создаем скрипт, называем по вкусу, и делаем 2 блока: один на установку уборки, а второй просто тушит скрипт (заглушка).
Теперь самое простое (сложное): найти координаты комнаты. В открытом виде их нет нигде.
Я искал в инете, натыкался на немецких авторов и ничего там не понимал. Что-то программировать я не умею, так что всё методом тыка, по-деревенски. Если кто научит получать их как-то иначе, чем делал я, буду премного благодарен.
Итак, что я делаю: в скрипт выше начинаю вписывать различные значения комнаты и потом смотрю в приложении "mihome", что он отрисовал. Методом тыка понял, что координаты пределов задаются примерно так:
[верхний левый, нижний левый, нижний правый, верхний правый] [22600, 21000, 26300, 26100, 1]
Странно звучит, согласен. В доке описано про x1,y1,x2,y2 - непонятно, как соотносится.
После того, как координаты более-менее подобраны, окончательно забиваем их в скрипт, и повторяем процесс для каждой комнаты.
Должны подтянуться созданные скрипты. Настроим их запуск в приложении Яндекс. Для скрипта из примера я указал имя "Пылесос" и привязал его к комнате. Теперь по команде "включи пылесос в гостиной" запускается зональный скрипт уборки.
Выключатель Tuya
Как и со всеми устройствами выше, нужно указать комнату и функцию, после этого обновить список устройств.
Обязательно обновляем список устройств в Алисе!
Успехов и удачи в освоении ioBroker, и больше новых умных устройств в вашем доме!