IoBroker от 0 до 100: различия между версиями
м Откат правок Ws23pro (обсуждение) к версии Ark rusinov-9121383 Метка: откат |
Нет описания правки |
||
| Строка 38: | Строка 38: | ||
== Выбор | == Выбор флэш-карты == | ||
Главное: флэшка должна быть не ниже 10 класса (ещё быстрее работают UHS 1-3 класса - U1-U3). | |||
Желающие могут углубиться в [http://www.pidramble.com/wiki/benchmarks/microsd-cards самостоятельные поиски], тесты и сравнения. | В сети много споров и обзоров на тему лучших карт и производителей, частым советом является SanDisk, как отлично зарекомендовавшая себя с "малинками". Желающие могут углубиться в [http://www.pidramble.com/wiki/benchmarks/microsd-cards самостоятельные поиски], тесты и сравнения. | ||
У автора статьи из 8 ГБ памяти занято | У автора статьи из 8 ГБ памяти занято около 36% и больше 8 гигабайт, скорее всего, брать смысла нет. | ||
| Строка 65: | Строка 65: | ||
Дошли до самого интересного! Есть крутой скрипт, который сделает всю грязную работу по установке iob. Запускать его на всякий лучше с правами администратора (тот самый "рут"). | Дошли до самого интересного! Есть крутой скрипт, который сделает всю грязную работу по установке iob. Запускать его на всякий лучше с правами администратора (тот самый "рут"). | ||
Команда на запуск скрипта: <span class="tocopy">sudo curl -sL https://iobroker.net/install.sh | bash -</span> | Команда на запуск скрипта: <span class="tocopy"><nowiki>sudo curl -sL https://iobroker.net/install.sh | bash -</nowiki></span> | ||
Скрипт в 4 этапа установит необходимые библиотеки, ноду, создаст папки | Скрипт в 4 этапа установит необходимые библиотеки, ноду, создаст папки и раздаст права. | ||
<gallery> | |||
Файл:1.4.jpg|Первый этап | |||
Файл:2.4.jpg|Второй этап | |||
Файл:3.4.jpg|Третий этап | |||
Файл:4.4.jpg|Четвёртый этап | |||
</gallery> | |||
Готово! Можно запустить интерфейс администратора iob по адресу http://ip_адрес_нашей_малины:8081 | |||
== Веб-интерфейс == | |||
[[Файл:Web.jpg|thumb|Веб-интерфейс]] | |||
Запускаем админ-панель, читаем и принимаем лицензионное соглашение. | |||
Откроется панель управления всей системы УД iob. | Откроется панель управления всей системы УД iob. | ||
Здесь всё разбито по категориям: | Здесь всё разбито по категориям: | ||
* '''Драйверы''' - адаптеры, связывающие различные устройства с системой iob (что-то вроде маркета приложений); | |||
* '''Настройки''' - управление уже установленными драйверами (включить/выключить/перезапустить/конфигурировать); | |||
* '''Объекты''' - некий реестр установленных драйверов, в котором можно более тонко управлять, получать информацию/статусы/состояния; | |||
* '''Категории''' - здесь создаются комнаты и функции для устройств, играет роль для комфортной работы с Алисой. | |||
* '''Логи''' - ''те самые'' логи | |||
* '''Скрипты''' - скрипты для управления устройствами (например, включить свет в помещении при обнаружении движения). Пункт появится после установки драйвера Script Engine. | |||
[[Файл: | [[Файл:Nastroyki.jpg|600px|Настройки]] | ||
== Подключение устройств == | |||
Устройства могут работать по "обычной" сети Wi-Fi, и по протоколу [https://yandex.ru/search/?text=zigbee&lr=121899 ZigBee]. | |||
Устройства могут работать по Wi-Fi | |||
*ZigBee | * ZigBee - чаще устройства Aqara/Xiaomi; | ||
*WiFi, | * WiFi - например, Tuya/Digma/Hiper, Sonoff, некоторые лампы, пылесосы итд. | ||
Чтобы добавить устройства Sonoff, их предварительно нужно прошить под tasmota | Чтобы добавить устройства Sonoff, их предварительно нужно прошить под стороннюю прошивку tasmota! | ||
Читаем об этом [https://sprut-ai.turbopages.org/s/sprut.ai/client/article/263 тут] и [https://github.com/arendst/Tasmota тут]. | |||
Кроме того, для управления ZigBee-устройствами нужен USB-стик. Читаем [https://t.me/zigbeer телеграм чат] и [https://myzigbee.ru/ сайтик]. | |||
Итак, для использования Zigbee: | |||
# докупаем стик, подключаем его в "малину", | |||
В настройках "имя или адрес порта" выбираем "/dev/ttyACM0" | # устанавливаем одноименный драйвер - "Zigbee" (установка драйверов описана ниже). | ||
# В настройках "имя или адрес порта" выбираем <span class="tocopy">/dev/ttyACM0</span> | |||
# Чтобы добавить устройства, открываем настройки драйвера ZigBee, | |||
# Щёлкаем зеленую иконку сопряжения в верхнем правом углу (начнётся процесс поиска устройств). | |||
# Теперь ищем кнопку на/в корпусе устройства. Скорость и интенсивность нажатия кнопки зависит от устройства, тыркать можно и наугад, | |||
пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот - нужно зажать 1 или 2 кнопки (в зависимости от их количества) секунд на 20. | |||
# Во вкладке "Устройства" появится свежедобавленное, его лучше сразу переименовать для удобства. | |||
# Когда будут добавлены все устройства, можно перейти к скриптам (сценарии, пакеты команд для нескольких устройств). | |||
=== Драйвера === | |||
Обеспечивают взаимодействие iob с различными устройствами и другими системами ("календарь", "погода", модуль скриптов, mqtt и др.). Драйвера устанавливаются по необходимости, сразу перегружать систему "всем" не стоит. | |||
Доступные драйверы собраны на вкладке "Драйвера" в формате "маркета". Сюда же приходят их обновления. | |||
[[Файл:Drivers.jpg| | [[Файл:Drivers.jpg|600px|драйвера]] | ||
| Строка 144: | Строка 150: | ||
=== Скрипты === | === Скрипты === | ||
Для автоматизации каких-либо процессов, управления устройствами или для выполнения сценариев, необходимо писать скрипты. | Для автоматизации каких-либо процессов, управления устройствами или для выполнения сценариев, необходимо писать скрипты. | ||
Версия от 13:34, 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, ищите соответствующие мануалы. Тем не менее, общий принцип тот же.
- Для сервера умного дома на ioBroker достаточно облегчённой версии Raspbian для Raspberry Pi OS 32-bit Lite, ставим её, без лишних программ и без десктопа.
- Распаковываем образ, записываем на флэшку (при помощи Rufus или Win32DiskImager).
- В корне флешки создаём пустой файл с именем 'ssh' (без расширения), это разрешит ssh-доступ, чтобы не подключать монитор и работать из консоли.
- Сканируем сеть, ищем адрес нашей "малины" и подключаемся через putty на порт 22 (имя пользователя 'pi', пароль 'raspberry').
- Проводим первоначальную настройку командой 'raspi-config': новый пароль, часовой пояс, русскую локаль.
Установка iob
Дошли до самого интересного! Есть крутой скрипт, который сделает всю грязную работу по установке 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;
- WiFi - например, Tuya/Digma/Hiper, Sonoff, некоторые лампы, пылесосы итд.
Чтобы добавить устройства Sonoff, их предварительно нужно прошить под стороннюю прошивку tasmota! Читаем об этом тут и тут. Кроме того, для управления ZigBee-устройствами нужен USB-стик. Читаем телеграм чат и сайтик.
Итак, для использования Zigbee:
- докупаем стик, подключаем его в "малину",
- устанавливаем одноименный драйвер - "Zigbee" (установка драйверов описана ниже).
- В настройках "имя или адрес порта" выбираем /dev/ttyACM0
- Чтобы добавить устройства, открываем настройки драйвера ZigBee,
- Щёлкаем зеленую иконку сопряжения в верхнем правом углу (начнётся процесс поиска устройств).
- Теперь ищем кнопку на/в корпусе устройства. Скорость и интенсивность нажатия кнопки зависит от устройства, тыркать можно и наугад,
пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот - нужно зажать 1 или 2 кнопки (в зависимости от их количества) секунд на 20.
- Во вкладке "Устройства" появится свежедобавленное, его лучше сразу переименовать для удобства.
- Когда будут добавлены все устройства, можно перейти к скриптам (сценарии, пакеты команд для нескольких устройств).
Драйвера
Обеспечивают взаимодействие iob с различными устройствами и другими системами ("календарь", "погода", модуль скриптов, 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"
- здесь более подробно о подключении