IoBroker от 0 до 100

Материал из База знаний
Перейти к навигации Перейти к поиску



Знания. Применение информации с этой страницы требует специальных знаний и навыков!
 
Всё описанное на этой странице вы производите на свой страх и риск, включая нарушение работы программного обеспечения и выход из строя оборудования, а также риск поражения током и травмы.
Материал носит информационный характер, и не является прямым указанием к действию!
Прямые руки! ВНИМАНИЕ: требуются прямые руки.
 
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.


Небольшое введение

Сразу оговорюсь, что ковыряние в таких системах - моё хобби в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к критике данного материала. 
А если вы гуру системы и заметили ошибки, или есть пожелания - смело дополняйте материал.

ioBroker - OpenSource проект, который разрабатывается сообществом информатиков. Каждый интересующийся темой умных домов может присоединиться к проекту и разрабатывать приложения. Есть и обширный форум для конечных пользователей, в котором активно обсуждаются новые идеи, проблемы и пожелания клиентов.

ioBroker полностью разработан на Node.js, интуитивно понятен, гибко подстраивается под новые условия, легко дополняется. Любой владеющий JavaScript может самостоятельно расширять возможности системы.

Ещё одно незаменимое преимущество - создание кластера из работающих, как одно целое, нескольких серверов (Multihost). Когда система разрастётся настолько, что Raspberry перестанет справляться - то достаточно инсталлировать вторую Raspberry, чтобы распределить текущие задания между ними.

Ну и самая, возможно, яркая отличительная черта ioBroker - визуализация. Посредством Drag & Drop можно разрабатывать сложные и красивые изображения-визуализации для дома.


Выбор платформы

ioBroker работает на любом оборудовании и операционных системах, на которых запускается Node.js (ARM, x86, Windows, Linux, OSX). При этом не имеет значения, какой “компьютер” вы используете: Raspberry, Windows-Server, Synology-NAS или MacOS. Каждый пользователь, даже не являясь профессионалом, может использовать ioBroker. Кто не хочет связываться с Linux - может запросто использовать Windows.

Так как ioBroker для каждого нового драйвера запускает новый Node.js-процесс, то главный ограничивающий фактор - объём оперативной памяти. 
Для каждого отдельного драйвера требуется примерно 10-60 Мб, в зависимости от сложности. 

Автор статьи разворачивает ioBroker на Raspberry Pi (она же "малина") 3 поколения. Информации по этой платформе в Интернете достаточно много, в том числе на русском языке. Минимальной рабочей памятью считается 256МБ ОЗУ, но для более-менее комфортной работы желательно не менее 1ГБ.

Сейчас уже выпускаются Raspberry Pi 4 поколения с 2, 4 и даже 8 ГБ ОЗУ. "На вырост" вполне можно взять.


Выбор флэш-карты

Главное: флэшка должна быть не ниже 10 класса (ещё быстрее работают UHS 1-3 класса - U1-U3).

В сети много споров и обзоров на тему лучших карт и производителей, частым советом является SanDisk, как отлично зарекомендовавшая себя с "малинками". Желающие могут углубиться в самостоятельные поиски, тесты и сравнения.

У автора статьи из 8 ГБ памяти занято около 36% и больше 8 гигабайт, скорее всего, брать смысла нет.


Установка ОС

Описана для оригинальной Raspberry Pi версии 3. При развёртывании на клоны, а тем более Windows, ищите соответствующие мануалы. Тем не менее, общий принцип тот же.
  1. Для сервера умного дома на ioBroker достаточно облегчённой версии Raspbian для Raspberry Pi OS 32-bit Lite, ставим её, без лишних программ и без десктопа.
  2. Распаковываем образ, записываем на флэшку (при помощи Rufus или Win32DiskImager).
  3. В корне флешки создаём пустой файл с именем 'ssh' (без расширения), это разрешит ssh-доступ, чтобы не подключать монитор и работать из консоли.
  4. Сканируем сеть, ищем адрес нашей "малины" и подключаемся через putty на порт 22 (имя пользователя 'pi', пароль 'raspberry').
  5. Проводим первоначальную настройку командой 'raspi-config': новый пароль, часовой пояс, русскую локаль.


Установка ioBroker

Для вас есть хорошая новость: это очень простой шаг. Всего один, но крутой скрипт сделает всю грязную работу по установке iob. Запускать его на всякий лучше с правами администратора (тот самый "рут").

Команда на запуск скрипта: sudo curl -sL https://iobroker.net/install.sh | bash -

В 4 этапа будут установлены необходимые библиотеки, нода, созданы папки и разданы права.

Готово! Можно запустить интерфейс администратора iob по адресу http://ip_адрес_нашей_малины:8081


Веб-интерфейс

Веб-интерфейс

Запускаем админ-панель, читаем и принимаем лицензионное соглашение. Откроется панель управления всей системы УД iob.

Здесь всё разбито по категориям:

  • Драйверы - адаптеры, связывающие различные устройства с системой iob (что-то вроде маркета приложений);
  • Настройки - управление уже установленными драйверами (включить/выключить/перезапустить/конфигурировать);
  • Объекты - некий реестр установленных драйверов, в котором можно более тонко управлять, получать информацию/статусы/состояния;
  • Категории - здесь создаются комнаты и функции для устройств, играет роль для комфортной работы с Алисой.
  • Логи - те самые логи
  • Скрипты - скрипты для управления устройствами (например, включить свет в помещении при обнаружении движения). Пункт появится после установки драйвера Script Engine!


Устройства

Устройства могут работать как по "обычной" сети Wi-Fi, так и по протоколу ZigBee.

  • ZigBee - чаще устройства Aqara/Xiaomi;
  • Wi-Fi - например, Tuya/Digma/Hiper, Sonoff, некоторые лампы, пылесосы итд.
Чтобы добавить устройства Sonoff, их предварительно нужно прошить под стороннюю прошивку tasmota!
Читаем об этом тут и тут.
Кроме того, для управления ZigBee-устройствами нужен USB-стик. Читаем телеграм чат и сайтик. 

Итак, для использования Zigbee:

  1. докупаем стик, подключаем его в "малину";
  2. устанавливаем одноименный драйвер - "Zigbee" (установка драйверов описана ниже);
  3. В настройках "имя или адрес порта" выбираем /dev/ttyACM0;
  4. Чтобы добавить устройства, открываем настройки драйвера ZigBee;
  5. Щёлкаем зеленую иконку сопряжения в верхнем правом углу (начнётся процесс поиска устройств).
  6. Теперь ищем кнопку на/в корпусе устройства. Скорость и интенсивность нажатия кнопки зависит от устройства, тыркать можно и наугад, пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот - нужно зажать 1 или 2 кнопки (в зависимости от их количества) секунд на 20.

Во вкладке "Устройства" лучше сразу переименовать все добавленные, для удобства в будущем.


Драйверы

Обеспечивают взаимодействие iob с различными устройствами и другими системами ("календарь", "погода", модуль скриптов, mqtt и др.). Устанавливаются по необходимости; сразу перегружать систему "всем" не стоит.

Доступные драйверы собраны на вкладке "Драйвера" в формате "маркета". Сюда же приходят их обновления.

драйвера

Примеры:

  • mihome-vacuum - драйвер для управления пылесосом xiaomi (минуя приложение mihome)
  • sonoff - для управления устройствами sonoff
  • zigbee - для usb-стика, связывающегося с Zigbee-устройствами.

Чтобы установить драйвер, просто находим нужное название в списке, на его иконке жмем троеточие и плюсик. Установка происходит автоматически.

Во избежание проблем, в это время лучше не сворачивать окно до конца установки.

Следом откроется окно настроек установленного драйвера. Настройки могут потребовать указать:

  • IP-адрес и порт устройства
  • ID устройства
  • авторизацию

После настройки драйвера с ним также можно взаимодействовать через скрипты. Чтобы подробно изучить его возможности, откройте вкладку "Объекты", и разверните свойства нужного драйвера.


Скрипты

"Сердце" автоматизации процессов и пакетного управления устройствами.

Чтобы этот блок появился в меню, необходимо установить драйвер "Script Engine". Вам станут доступны сразу 3 способа написания правил:

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

Для порядка, скрипты лучше сразу сортировать по папкам (освещение, техника, оповещения и т.д):

скрипты


Резервные (аварийные) копии

В один прекрасный день Ваш сервер вполне может "лечь". Причины самые разные:

  • Вышла из строя флэшка;
  • Вы неудачно поиграли с новыми драйверами, или обновлениями;
  • Случилось какое-то другое воздействие на сервер.

Чтобы быстро и безболезненно восстановить работу умного дома, необходимо иметь резервную копию. По счастью, всё, что минимально нужно сохранить, это из папки по пути /opt/iobroker/iobroker-data скопировать:

  • 2 файлика: objects.json и states.json,
  • 1 подпапку: zigbee_0, внутри которой лежит файл shepherd.db (если у Вас вообще есть zigbee-устройства).

Если вдруг настало плохо - то:

  • меняем/тестируем/форматируем флэшку;
  • ставим заново raspbian;
  • разворачиваем iob;
  • В терминале выполняем команду: iob stop
  • архивную копию (файлы objects.json, states.json и папку zigbee_0) закидываем по указанному выше пути.
  • снова запускаем ioBroker: iob start
В зависимости от количества драйверов, устройств, модулей, настроек, скриптов (нужное подчеркнуть) потребуется разное время на переустановку, но главное - всё будет идти в автоматическом режиме. 
Если совсем лениво - можно оставить на часок, а после зайти в веб-морду и проверить, всё ли на месте.

За процессами можно наблюдать в htop (следим за процессом npm, нажав F5).


Интеграция с голосовым ассистентом Алиса

Создаём учётную запись ioBroker

Дошли до самого интересного!

  • Регистрируемся на сайте, подтверждаем свой почтовый ящик.
  • Устанавливаем драйвер "IoT Assistants"
  • Заходим в его настройки:
    • В ассистентах отмечаем "Yandex Алиса";
    • Указываем свой логин и пароль подключения к ioBroker.pro;
    • Жмём "Сохранить" (адаптер перезапустится).
На почту придёт индивидуальный пароль для этого экземпляра ("инстанса") ioBroker.iot.


Объединяем аккаунты в приложении Яндекс

Здесь всё совсем легко:

  • Открываем приложение Яндекса;
  • Переходим в знакомый всем квазар - "Управление устройствами";
  • "Добавить устройство" - "ioBroker";
  • Связываем аккаунты ioBroker и Алисы с помощью полученного при регистрации в ioBroker пароля.
Если аккаунты не связались - поменяйте/установите в настройках телефона браузер по умолчанию, и пробуйте снова.


Настройки драйвера "IoT Assistants"

На вкладке "Умные перечисления" в админке ioBroker должны появиться ранее добавленные "Функции" и "Комнаты". Если есть - круто (а если и нет - всё это можно редактировать во вкладке "Категории").

Открываем "Объекты", и для каждого устройства выставляем "Функции" и "Комнату":

Привязка комнат и функций


Снова откроем настройки драйвера "IoT Assistants", во вкладке "устройства Алисы" должны появиться наши объекты:

Устройства Алисы


Предугадать в статье все возможные проблемы тяжело; будем считать, что у Вас уже есть минимальное представление о платформе iob, мозги и чуйка. Анализируйте ошибки, используйте поиск ("iobroker алиса"). 


Некоторые ссылки

Часть информации взята здесь: