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

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

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
 
(не показано 25 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{metadesc| Отправка текста и команд на колонку с Алисой при помощи NodeJS }}
__NOEDITSECTION__
__TOC__
{{Skills}}
{{Skills}}
{{Hands}}
{{Hands}}


== Небольшое введение ==
Сразу оговорюсь, что ковыряние в таких системах - моё хобби в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к критике данного материала.
А если вы гуру системы и заметили ошибки, или есть пожелания - смело дополняйте материал.
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-процесс, то главный ограничивающий фактор - объём оперативной памяти.  
ioBroker это OpenSource проект, который разрабатывается сообществом информатиков. Каждый, кто интересуется темой Smart Home может присоединиться к проекту и под лицензией MIT на Github начать разрабатывать приложения. Дополнительно имеется обширный форум для конечных пользователей, в котором активно обсуждаются новые идеи, проблемы и пожелания клиентов.
Для каждого отдельного драйвера требуется примерно 10-60 Мб, в зависимости от сложности.  


ioBroker полностью разработан на Node.js, интуитивно понятный, гибко подстраивающийся под новые условия, очень легко дополняемый и расширяемый. Каждый, кто владеет JavaScript, может заниматься расширением возможностей системы ioBroker.
Автор статьи разворачивает ioBroker на Raspberry Pi (она же "малина") [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ 3 поколения]. Информации по этой платформе в Интернете достаточно много, в том числе на русском языке. Минимальной рабочей памятью считается 256МБ ОЗУ, но для более-менее комфортной работы желательно не менее 1ГБ.


Еще одно незаменимое преимущество, это создание системы из нескольких серверов, работающих, как одно целое (Multihost). Например, если со временем, пользователь расширит свою систему домашней автоматизации и его Raspberry станет работать очень медленно, он может просто инсталлировать вторую Raspberry, чтобы распределить между ними текущие задания. Самая сильная отличительная черта ioBroker возможность визуализации. Посредством Drag & Drop можно разрабатывать сложные и красивые изображения-визуализации для дома.
Сейчас уже выпускаются Raspberry Pi 4 поколения с 2, 4 и даже 8 ГБ ОЗУ. "На вырост" вполне можно взять.


взято [https://habr.com/ru/post/402767/ отсюда]


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




=== Выбор железа ===
Главное: флэшка должна быть не ниже 10 класса (ещё быстрее работают UHS 1-3 класса - U1-U3).  
ioBroker работает на всём оборудовании и всех операционных системах, на которых можно запустить Node.js (ARM, x86, Windows, Linux, OSX). При этом не имеет значения какой “компьютер” вы используете Raspberry, Windows-Server, Synology-NAS или MacOS. Так как ioBroker для каждого нового драйвера запускает новый Node.js- процесс, то оперативная память становится ограничивающим фактором. Для каждого отдельного драйвера требуется примерно 10-60 Мб, в зависимости от сложности. Итак, каждый пользователь, даже не являясь профессионалом может применять систему ioBroker. Те, кто не хочет связываться с Linux, могут вместо него запросто использовать Windows.


Лично я разворачиваю на raspberry pi 3 (она же "малинка"). Что такое rp3 (читаем [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ тут] ну и далее в инете)
В сети много споров и обзоров на тему лучших карт и производителей, частым советом является SanDisk, как отлично зарекомендовавшая себя с "малинками". Желающие могут углубиться в [http://www.pidramble.com/wiki/benchmarks/microsd-cards самостоятельные поиски], тесты и сравнения.


Сейчас уже есть rp4 с 2 гб ОЗУ. Можно брать на перспективу.
У автора статьи из 8 ГБ памяти занято около 36% и больше 8 гигабайт, скорее всего, брать смысла нет.




=== Выбор флешки ===
== Установка ОС ==
Берем хорошую флешку, 10 класса.
Объёма хватит 8 гигов, у меня занято ~36%, думаю, больше 8 брать нету смысла.




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


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


выбираем версию Raspberry Pi OS (32-bit) Lite.
Распаковываем образ, записываем на флешку (софтина Win32DiskImager).
Затем, нужно в корне флешки, создать пустой файл, без расширения с именем ssh, это нам даст ssh доступ на малину, чтобы не подключать монитор и ставить из консоли
Далее, сканируем сеть и ищем малину, подключаемся через putty, на адрес малины, порт 22, имя пользователя pi, пароль raspberry
Делаем первоначальную настройку через команду raspi-config: сменить пароль, часовой пояс, рус локалии


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


=== Установка iob ===
Есть очень крутой скрипт, который делает всю грязную работу по установке iob


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


sudo curl -sL https://iobroker.net/install.sh | bash -
Команда на запуск скрипта: <span class="tocopy"><nowiki>sudo curl -sL https://iobroker.net/install.sh | bash -</nowiki></span>
Скрипт в 4 этапа установит необходимые библиотеки, ноду, создаст папки, права.


[[Файл:1.4.jpg|200px|1/4]]
В 4 этапа будут установлены необходимые библиотеки, нода, созданы папки и назначены права.
[[Файл:2.4.jpg|200px|2/4]]
[[Файл:3.4.jpg|200px|3/4]]
[[Файл:4.4.jpg|200px|4/4]]


<gallery>
Файл:1.4.jpg|Первый этап
Файл:2.4.jpg|Второй этап
Файл:3.4.jpg|Третий этап
Файл:4.4.jpg|Четвёртый этап
</gallery>


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




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


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


[[Файл:Web.jpg|100px|вебморда]]
Запускаем админ-панель, читаем и принимаем лицензионное соглашение.  


*драйвера - здесь собраны адаптеры, которые позволяют связывать различные устройства с системой iob (что-то типа маркета приложений)
Откроется панель управления всей системы УД iob.
*настройки - здесь управляются конкретно установленные драйвера: можно включать/выключать/перезапускать/конфигурировать
<gallery>
[[Файл:Nastroyki.jpg|400px|настройки]]
Файл:Web.jpg|Веб-интерфейс
*объекты - это некий реестр установленных драйверов, в котором можно тонко управлять, запускать, получать информацию/статусы/состояния
</gallery>
*категории - здесь создаются комнаты и функции для устройств, честно, пока не разбирался, для чего это. знаю только, что для связи с Алисой роляет.
*логи - те самые логи
*скрипты (появится после установки драйвера Script Engine) - здесь пишутся скрипты, для управления устройствами: например, включить свет в помещении при обнаружении движения.


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




=== Подключение устройств ===
=== Устройства ===
Устройства могут работать по Wi-Fi сети и протоколу ZigBee.


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


Чтобы добавить устройства Sonoff, их предварительно нужно прошить под tasmota. Читаем [https://sprut-ai.turbopages.org/s/sprut.ai/client/article/263 тут] и [https://github.com/arendst/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 нужен usb стик. Читаем [https://t.me/zigbeer телеграм чат] и [https://myzigbee.ru/ сайтик].
Итак, для использования Zigbee:
Докупаем, подключаем в малину, устанавливаем одноименный драйвер Zigbee. (про установку драйверов ниже)
# докупаем стик, подключаем его в "малину";
В настройках "имя или адрес порта" выбираем "/dev/ttyACM0"
# устанавливаем одноименный драйвер - "Zigbee" (установка драйверов описана ниже);
# В настройках "имя или адрес порта" выбираем <span class="tocopy">/dev/ttyACM0</span>;
# Чтобы добавить устройства, открываем настройки драйвера ZigBee;
# Щёлкаем зеленую иконку сопряжения в верхнем правом углу (начнётся процесс поиска устройств).
# Теперь ищем кнопку на/в корпусе устройства. Скорость и интенсивность нажатия кнопки зависит от устройства, тыркать можно и наугад, пока в логах сопряжения не появится информация об устройстве. У выключателей наоборот - нужно зажать 1 или 2 кнопки (в зависимости от их количества) секунд на 20.
<gallery>
Файл:Zigbee_iob_connection_1.jpg
Файл:Zigbee_iob_connection_2.jpg
</gallery>


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




=== Драйвера ===
=== Драйверы ===


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


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


[[Файл:Drivers.jpg|400px|драйвера]]
Доступные драйверы собраны на вкладке "Драйвера" в формате "маркета". Сюда же приходят их обновления.


[[Файл:Drivers.jpg|600px|драйвера]]


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


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


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


После установки, драйвер сразу откроет окно настроек. Опять же, в зависимости от конкретного драйвера, настройки могут потребовать указать:
Следом откроется окно настроек установленного драйвера. Настройки могут потребовать указать:
* IP адрес и порт устройства
* 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:Умный дом]]

Текущая версия от 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 алиса"). 

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

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