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

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

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
 
(не показано 20 промежуточных версий 2 участников)
Строка 21: Строка 21:
Ещё одно незаменимое преимущество - создание кластера из работающих, как одно целое, нескольких серверов (Multihost). Когда система разрастётся настолько, что Raspberry перестанет справляться - то достаточно инсталлировать вторую Raspberry, чтобы распределить текущие задания между ними.  
Ещё одно незаменимое преимущество - создание кластера из работающих, как одно целое, нескольких серверов (Multihost). Когда система разрастётся настолько, что Raspberry перестанет справляться - то достаточно инсталлировать вторую Raspberry, чтобы распределить текущие задания между ними.  


Ну и самая, возможно, яркая отличительная черта ioBroker - визуализация. Посредством Drag & Drop можно разрабатывать сложные и красивые изображения-визуализации для дома. Описание частично взято [https://habr.com/ru/post/402767/ отсюда].
Ну и самая, возможно, яркая отличительная черта ioBroker - визуализация. Посредством Drag & Drop можно разрабатывать сложные и красивые изображения-визуализации для дома.




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




Строка 38: Строка 38:




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




Флэш-карта должна быть не ниже 10 класса (ещё быстрее работают UHS 1-3 класса - U1-U3). В сети много споров и обзоров на тему лучших карт и производителей, частым советом является SanDisk.
Главное: флэшка должна быть не ниже 10 класса (ещё быстрее работают UHS 1-3 класса - U1-U3).  


Желающие могут углубиться в [http://www.pidramble.com/wiki/benchmarks/microsd-cards самостоятельные поиски], тесты и сравнения.
В сети много споров и обзоров на тему лучших карт и производителей, частым советом является SanDisk, как отлично зарекомендовавшая себя с "малинками". Желающие могут углубиться в [http://www.pidramble.com/wiki/benchmarks/microsd-cards самостоятельные поиски], тесты и сравнения.


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




Строка 53: Строка 53:
  Описана для оригинальной Raspberry Pi версии 3. При развёртывании на клоны, а тем более Windows, ищите соответствующие мануалы. Тем не менее, общий принцип тот же.
  Описана для оригинальной Raspberry Pi версии 3. При развёртывании на клоны, а тем более Windows, ищите соответствующие мануалы. Тем не менее, общий принцип тот же.


# Для сервера умного дома на ioBroker достаточно облегчённой [https://www.raspberrypi.org/downloads/raspberry-pi-os/ версии Raspbian для Raspberry Pi OS 32-bit Lite], ставим её, без лишних программ и без десктопа.
# Для сервера умного дома на ioBroker достаточно облегчённой [https://www.raspberrypi.org/downloads/raspberry-pi-os/ версии "Raspbian", для Raspberry Pi OS 32-bit Lite]. Выбираем этот образ. Он не содержит в себе графической оболочки и рекомендованного ПО.
# Распаковываем образ, записываем на флэшку (при помощи Rufus или Win32DiskImager).
# Распаковываем образ, записываем на флэшку (при помощи Rufus или Win32DiskImager).
# В корне флешки создаём пустой файл с именем 'ssh' (без расширения), это разрешит ssh-доступ, чтобы не подключать монитор и работать из консоли.
# В корне флешки создаём пустой файл с именем 'ssh' (без расширения), это позволит подключиться к малине удаленно по сети, используя протокол ssh, чтобы не подключать монитор.
# Сканируем сеть, ищем адрес нашей "малины" и подключаемся через putty на порт 22 (имя пользователя 'pi', пароль 'raspberry').
# Сканируем сеть/смотрим в dhcp, ищем адрес нашей "малины" и подключаемся через putty на порт 22 (имя пользователя 'pi', пароль 'raspberry').
# Проводим первоначальную настройку командой 'raspi-config': новый пароль, часовой пояс, русскую локаль.
# Проводим первоначальную настройку командой 'raspi-config': новый пароль, часовой пояс, русскую локаль.




== Установка iob ==
== Установка ioBroker ==




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


[[Файл:1.4.jpg|200px|1/4]]
<gallery>
[[Файл:2.4.jpg|200px|2/4]]
Файл:1.4.jpg|Первый этап
[[Файл:3.4.jpg|200px|3/4]]
Файл:2.4.jpg|Второй этап
[[Файл:4.4.jpg|200px|4/4]]
Файл:3.4.jpg|Третий этап
Файл:4.4.jpg|Четвёртый этап
</gallery>


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


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


== Веб-интерфейс ==
Запускаем админ-панель, читаем и принимаем лицензионное соглашение.


=== веб-морда ===
Открываем админку, будет предложено прочитать и принять лицензионное соглашение.
Откроется панель управления всей системы УД iob.
Откроется панель управления всей системы УД iob.
<gallery>
Файл:Web.jpg|Веб-интерфейс
</gallery>


Здесь всё разбито по категориям:
Здесь всё разбито по категориям:
{| class="wikitable" style = "width:100%"
|-
! width="10%" | Термин
! width="50%" | Описание
|-
| '''Драйверы'''
| Адаптеры, связывающие устройства с системой iob (что-то вроде маркета приложений)
|-
| '''Настройки'''
| Управление уже установленными драйверами (включить/выключить/перезапустить/конфигурировать)
|-
| '''Объекты'''
| Реестр записей, называемых стейтами (от слова ''state''). Через стейты происходит управление всем и вся. Здесь хранятся и стейты-команды для управления (включение, выключение света, или запуск пылесоса), и стейты-статусы (состояние подключения устройства, или данные датчиков)
|-
| '''Категории'''
| Здесь создаются комнаты и функции для устройств, играет роль для комфортной работы с Алисой
|-
| '''Логи'''
| ''Те самые'' логи
|-
| '''Скрипты'''
| Пользовательские скрипты для выполнения чего либо (например, включить свет в помещении при обнаружении движения, отправить сообщение в телеграм при срабатывании датчика протечки, проиграть звук на подключенных к малине колонках). Пункт появится после установки драйвера Script Engine!
|}


[[Файл:Web.jpg|100px|вебморда]]


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


Устройства могут работать по сети Wi-Fi, протоколу [https://yandex.ru/search/?text=zigbee&lr=121899 ZigBee], z-wave, modbus, RS485 и другие.


Чтобы добавить устройства 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:
Устройства могут работать по Wi-Fi сети и протоколу ZigBee.
# докупаем стик, подключаем его в "малину";
# устанавливаем одноименный драйвер - "Zigbee" (установка драйверов описана ниже);
# В настройках "имя или адрес порта" выбираем <span class="tocopy">/dev/ttyACM0</span>;
# Чтобы добавить устройства, открываем настройки драйвера ZigBee;
# Щёлкаем зеленую иконку сопряжения в верхнем правом углу (начнётся процесс поиска устройств).
# Теперь ищем кнопку на/в корпусе устройства. Скорость и интенсивность нажатия кнопки зависит от устройства, тыркать можно и наугад, пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот - нужно зажать 1 или 2 кнопки (в зависимости от их количества) секунд на 20.
<gallery>
Файл:Zigbee_iob_connection_1.jpg
Файл:Zigbee_iob_connection_2.jpg
</gallery>


*ZigBee, это чаще устройства aquara/xiaomi (про зигби читаем [https://yandex.ru/search/?text=zigbee&lr=121899 тут]:)
Во вкладке "Устройства" лучше сразу переименовать все добавленные, для удобства в будущем.
*WiFi, это, например, Sonoff, некоторые лампы, пылесосы и др.


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


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


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


''Не нашел в инете объяснения, что такое "драйвер", поэтому буду выкручиваться своими словами''
[[Файл:Drivers.jpg|600px|драйвера]]


Для взаимодействия с различными устройствами, а так же с другими системами (календарь, погода, модуль скриптов, mqtt и др.) необходимо устанавливать драйвер. Драйвера собраны на вкладке "драйвера", представлены как некий маркет. Там же приходят обновления для них.
Примеры:
* '''mihome-vacuum''' - драйвер для управления пылесосом xiaomi (минуя приложение mihome)
* '''sonoff''' - для управления устройствами sonoff
* '''zigbee''' - для usb-стика, связывающегося с Zigbee-устройствами.


[[Файл:Drivers.jpg|400px|драйвера]]
Чтобы установить драйвер, просто находим нужное название в списке, на его иконке жмем троеточие и плюсик. Установка происходит автоматически.  


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


Примеры драйверов:
Следом откроется окно настроек установленного драйвера. Настройки могут потребовать указать:
* mihome-vacuum - драйвер для управления пылесосом xiaomi (минуя приложение mihome)
* IP-адрес и порт устройства
* sonoff - драйвер для управления устройствами sonoff
* zigbee - драйвер для usb стика
 
Чтобы установить необходимый драйвер, находим его в списке, на иконке драйвера жмем троеточие и плюсик. Установка начнется автоматически.
 
''Во избежании проблем, лучше не сворачивать окно, дать ему спокойно установиться.''
 
После установки, драйвер сразу откроет окно настроек. Опять же, в зависимости от конкретного драйвера, настройки могут потребовать указать:
* IP адрес и порт устройства
* ID устройства
* ID устройства
* авторизацию
* авторизацию


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


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


=== Скрипты ===


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


Чтобы этот блок появился, необходимо установить драйвер "Script Engine". После этого, на Ваш выбор представлено 3 среды разработки:
"Сердце" автоматизации процессов и пакетного управления устройствами.
*JavaScript - создание правил путем написания кода на JavaScript
*Blockly - создание правил графическими блоками ([https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/ru/blockly.md здесь инфа])
*TypeScript - создание правил путем написания TypeScript


В зависимости от Вашего опыта программирования, выбираете нужную Вам среду. Я использую блокли, из-за отсутствия навыков программирования.
Чтобы этот блок появился в меню, необходимо установить драйвер "Script Engine". Вам станут доступны сразу 3 способа написания правил:
* '''JavaScript''' - стандартным JavaScript-кодом;
* '''Blockly''' - создание правил [https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/ru/blockly.md графическими блоками];
* '''TypeScript''' - кодом на TypeScript.


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


[[Файл:Script_iob.jpg|200px|скрипты]]
Для порядка, скрипты лучше сразу сортировать по папкам (освещение, техника, оповещения и т.д):


[[Файл:Script_iob.jpg|400px|скрипты]]


=== Бэкапы ===


Вероятность того, что в один прекрасный день Ваш сервер ляжет - ненулевая. Причины могут быть разные:
== Резервные (аварийные) копии ==
*сдохнет флешка,
*Вы решили установить или поиграться с новыми драйверами, или обновлениями
*Иное воздействие на сервер


Чтобы безболезненно вернуться к своему рабочему проекту, необходимо иметь резервную копию. Всё, что Вам нужно сохранить, это:
*2 файлика - ''objects.json'' и ''states.json''
*папку ''zigbee_0'' внутри которой лежит файл ''shepherd.db'' (при условии, что у Вас есть zigbee устройства)


эти файлы находятся по пути '''/opt/iobroker/iobroker-data'''
В один прекрасный день Ваш сервер вполне может "лечь". Причины самые разные:
* Вышла из строя флэшка;
* Вы неудачно поиграли с новыми драйверами, или обновлениями;
* Случилось какое-то другое воздействие на сервер.


Если совсем всё плохо - ставим заново raspbian, iob. Затем выполняем команду в терминал:
Чтобы быстро и безболезненно восстановить работу умного дома, необходимо иметь резервную копию. По счастью, всё, что минимально нужно сохранить, это из папки по пути '''/opt/iobroker/iobroker-data''' скопировать:
iob stop
* 2 файлика: '''objects.json''' и '''states.json''',
* 1 подпапку: '''zigbee_0''', внутри которой лежит файл '''shepherd.db''' (если у Вас вообще есть zigbee-устройства).


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


И снова в терминал команду:
В зависимости от количества драйверов, устройств, модулей, настроек, скриптов (нужное подчеркнуть) потребуется разное время на переустановку, но главное - всё будет идти в автоматическом режиме.
  iob start
  Если совсем лениво - можно оставить на часок, а после зайти в веб-морду и проверить, всё ли на месте.


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


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


== Интеграция с голосовым ассистентом Алиса через драйвер Cloud Iot ==




=== Интеграция с голосовым ассистентом Алиса ===
=== Создаём учётную запись ioBroker ===


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


* Регистрируемся [https://iobroker.pro/intro на сайте], подтверждаем почтовый ящик.
Дошли до самого интересного!
* Устанавливаем драйвер "IoT Assistants", заходим в настройки:
* Регистрируемся [https://iobroker.pro/intro на сайте], подтверждаем свой почтовый ящик.
** В ассистентах отмечаем Yandex Алиса;
* Устанавливаем драйвер "IoT Assistants/Соединение Cloud IoT" ([https://github.com/ioBroker/ioBroker.iot/blob/master/README.md гитхаб])
** Указываем логин-пароль подключения к ioBroker.pro;
* Заходим в его настройки:
** В ассистентах отмечаем "Yandex Алиса";
** Указываем свой логин и пароль подключения к ioBroker.pro;
** Жмём "Сохранить" (адаптер перезапустится).
** Жмём "Сохранить" (адаптер перезапустится).


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


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


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


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


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




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


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


Открываем "Объекты" в ioBroker, и в каждом нужном нам устройстве выставляем "Функции" и "Комнату".
* Открываем iobroker, делаем активную вкладку (если не было раньше) "Категории" и переходим в неё.
* Создаем комнаты, где планируется разместить умные устройства.
* Создаем для них функции: свет, отопление, жалюзи, техника и т.д.
* Открываем "Объекты" в ioBroker, и в каждом нужном нам устройстве выставляем "Функции" и "Комнату".


[[Файл:P5new.jpeg|600px|Привязка комнат и функций]]
[[Файл:P5new.jpeg|600px|Привязка комнат и функций]]


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


[[Файл:p6.png|600px|Устройства Алисы]]
[[Файл:p6.png|600px|Устройства Алисы]]


  Предугадать в статье все возможные проблемы тяжело; будем считать, что у Вас уже есть минимальное представление о платформе iob, мозги и чуйка. Анализируйте ошибки, используйте поиск ("iobroker алиса"). Часть информации взята здесь:
 
- "[https://forum.iobroker.net/topic/25560/драйвер-iot-assistants-и-алиса Драйвер IoT Assistants и Алиса]"
 
- "[[Алиса и ioBroker]]"
== Интеграция с голосовым ассистентом Алиса через протокол mqtt ==
- [[Подключение_устройств_ioBroker_в_Алису|здесь более подробно о подключении]]
 
https://wiki.yaboard.com/w/Алиса,_IoBroker_и_MQTT
 
 
 
  Предугадать в статье все возможные проблемы тяжело; будем считать, что у Вас уже есть минимальное представление о платформе iob, мозги и чуйка. Анализируйте ошибки, используйте поиск ("iobroker алиса").  
 
 
== Некоторые ссылки ==
 
 
Часть информации взята здесь:
* [https://habr.com/ru/post/402767/ Обзорная статья на Хабре 2017 года] - вводное описание частично взято отсюда.
* "[https://forum.iobroker.net/topic/25560/драйвер-iot-assistants-и-алиса Драйвер IoT Assistants и Алиса]"
* "[[Алиса и ioBroker]]"
* "[[Подключение устройств ioBroker в Алису]]" (здесь более подробно рассказано о подключении).




[[Category:Умный дом]]
[[Category:Умный дом]]

Текущая версия от 08:31, 2 ноября 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. Сканируем сеть/смотрим в dhcp, ищем адрес нашей "малины" и подключаемся через 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 (что-то вроде маркета приложений)
Настройки Управление уже установленными драйверами (включить/выключить/перезапустить/конфигурировать)
Объекты Реестр записей, называемых стейтами (от слова state). Через стейты происходит управление всем и вся. Здесь хранятся и стейты-команды для управления (включение, выключение света, или запуск пылесоса), и стейты-статусы (состояние подключения устройства, или данные датчиков)
Категории Здесь создаются комнаты и функции для устройств, играет роль для комфортной работы с Алисой
Логи Те самые логи
Скрипты Пользовательские скрипты для выполнения чего либо (например, включить свет в помещении при обнаружении движения, отправить сообщение в телеграм при срабатывании датчика протечки, проиграть звук на подключенных к малине колонках). Пункт появится после установки драйвера Script Engine!

Устройства

Устройства могут работать по сети Wi-Fi, протоколу ZigBee, z-wave, modbus, RS485 и другие.

Чтобы добавить устройства 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).

Интеграция с голосовым ассистентом Алиса через драйвер Cloud Iot

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

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

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

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

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

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

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

  • Открываем iobroker, делаем активную вкладку (если не было раньше) "Категории" и переходим в неё.
  • Создаем комнаты, где планируется разместить умные устройства.
  • Создаем для них функции: свет, отопление, жалюзи, техника и т.д.
  • Открываем "Объекты" в ioBroker, и в каждом нужном нам устройстве выставляем "Функции" и "Комнату".

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


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

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

Интеграция с голосовым ассистентом Алиса через протокол mqtt

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

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

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