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

IoBroker от 0 до 100: различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 88: Строка 88:
*драйвера - здесь собраны адаптеры, которые позволяют связывать различные устройства с системой iob (что-то типа маркета приложений)
*драйвера - здесь собраны адаптеры, которые позволяют связывать различные устройства с системой iob (что-то типа маркета приложений)
*настройки - здесь управляются конкретно установленные драйвера: можно включать/выключать/перезапускать/конфигурировать
*настройки - здесь управляются конкретно установленные драйвера: можно включать/выключать/перезапускать/конфигурировать
[[Файл:Nastroyki.jpg|400px|настройки]]
*объекты - это некий реестр установленных драйверов, в котором можно тонко управлять, запускать, получать информацию/статусы/состояния
*объекты - это некий реестр установленных драйверов, в котором можно тонко управлять, запускать, получать информацию/статусы/состояния
*категории - здесь создаются комнаты и функции для устройств, честно, пока не разбирался, для чего это. знаю только, что для связи с Алисой роляет.
*категории - здесь создаются комнаты и функции для устройств, честно, пока не разбирался, для чего это. знаю только, что для связи с Алисой роляет.

Версия от 12:55, 9 июля 2020

Знания Применение информации с этой страницы требует специальных знаний и навыков
Всё описанное на этой странице вы производите на свой страх и риск, включая нарушение работы программного обеспечения и выход из строя оборудования, а также риск поражения током и травмы.
Материал носит информационный характер, и не является прямым указанием к действию!
Требуются прямые руки И вдумчивое отношение к инструкции
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 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': новый пароль, часовой пояс, русскую локаль.

Установка iob

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

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

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

1/4 2/4 3/4 4/4

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

веб-морда

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

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

вебморда

  • драйвера - здесь собраны адаптеры, которые позволяют связывать различные устройства с системой iob (что-то типа маркета приложений)
  • настройки - здесь управляются конкретно установленные драйвера: можно включать/выключать/перезапускать/конфигурировать
  • объекты - это некий реестр установленных драйверов, в котором можно тонко управлять, запускать, получать информацию/статусы/состояния
  • категории - здесь создаются комнаты и функции для устройств, честно, пока не разбирался, для чего это. знаю только, что для связи с Алисой роляет.
  • логи - те самые логи
  • скрипты (появится после установки драйвера Script Engine) - здесь пишутся скрипты, для управления устройствами: например, включить свет в помещении при обнаружении движения.

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

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

  • ZigBee, это чаще устройства aquara/xiaomi (про зигби читаем тут:)
  • WiFi, это, например, Sonoff, некоторые лампы, пылесосы и др.

Чтобы добавить устройства Sonoff, их предварительно нужно прошить под tasmota. Читаем тут и тут

Для устройств, работающих по протоколу ZigBee нужен usb стик. Читаем телеграм чат и сайтик. Докупаем, подключаем в малину, устанавливаем одноименный драйвер Zigbee. (про установку драйверов ниже) В настройках "имя или адрес порта" выбираем "/dev/ttyACM0"

Чтобы добавить (спарить) устройства, нужно снова открыть настройки драйвера ZigBee, в верхнем правом углу есть зеленая иконка сопряжения, начнется процесс поиска устройств. Затем, нужно на самом устройстве найти кнопку и тыркать ее. Скорость и интенсивность тырканья неизвестна, но тыркать нужно пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот, нужно просто зажать 1 или 2 кнопки, в зависимости от их кол-ва секунд на 20. После во вкладке "устройства" появится искомое, его можно переименовать для удобства. Когда все устройства будут добавлены, с ними можно работать через скрипты.

Драйвера

Не нашел в инете объяснения, что такое "драйвер", поэтому буду выкручиваться своими словами

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

драйвера


Примеры драйверов:

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

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

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

После установки, драйвер сразу откроет окно настроек. Опять же, в зависимости от конкретного драйвера, настройки могут потребовать указать:

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

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

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

Скрипты

Для автоматизации каких-либо процессов, управления устройствами или для выполнения сценариев, необходимо писать скрипты.

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

  • JavaScript - создание правил путем написания кода на JavaScript
  • Blockly - создание правил графическими блоками (здесь инфа)
  • TypeScript - создание правил путем написания TypeScript

В зависимости от Вашего опыта программирования, выбираете нужную Вам среду. Я использую блокли, из-за отсутствия навыков программирования.

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

скрипты

Бэкапы

Вероятность того, что в один прекрасный день Ваш сервер ляжет - ненулевая. Причины могут быть разные:

  • сдохнет флешка,
  • Вы решили установить или поиграться с новыми драйверами, или обновлениями
  • Иное воздействие на сервер

Чтобы безболезненно вернуться к своему рабочему проекту, необходимо иметь резервную копию. Всё, что Вам нужно сохранить, это:

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

эти файлы находятся по пути /opt/iobroker/iobroker-data

Если совсем всё плохо - ставим заново raspbian, iob. Затем выполняем команду в терминал:

iob stop

После, сохраненные файлы (objects.json и states.json и папку zigbee_0) закидываем обратно по указанному пути.

И снова в терминал команду:

iob start

В зависимости от количества драйверов, устройств, модулей, настроек, скриптов (нужное подчеркнуть) потребуется различное время на переустановку, но всё будет идти в автоматическом режиме. Думаю, если не охота заморачиваться, можно оставить на часок, а после зайти в веб-морду и проверить, всё ли на месте.

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

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

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

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

В случае успешного старта на почту придет индивидуальный пароль для этого экземпляра ("инстанса") ioBroker.iot.


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

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


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

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

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

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

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

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

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