Перейти к содержанию

Подключение устройств ioBroker в Алису

Материал из Wiki yaboard

Вступление

Не буду рассказывать о плюсах и минусах самой системы 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 - мне это не понятно.
После того, как координаты более-менее подобраны, забиваем их в скрипт и проделываем, если необходимо, на каждую комнату.

И по традиции, снова обновляем список устройств в Алисе, у Вас должны подтянутся созданные скрипты, которые так же настраиваем.

Я указал имя "пылесос" и привязку к комнате. По команде "включи пылесос в гостиной" запускается зональный скрипт уборки.

Видеодемонстрация: