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