Статья

ioBroker — открытая система автоматизации (обзор)

  • ioBroker - Введение
  • Установка ioBroker на ОС Linux
  • ioBroker - админкаioBroker - устанавливаем первый драйвер
  • ioBroker - Визуализация
  • ioBroker - уведомления
  • ioBroker - управлениe
  • ioBroker - Собрать всех вместе и завести в Apple HomeKit
  • ioBroker - ham - HomeKit
  • ioBroker - Inline меню для Telegram бота

У многих, кто интересуется домашней автоматизацией (“Умный дом”), на слуху известные открытые системы автоматизации, на которых можно построить управление: OpenHab, MajorDoMo, Home Assistant, Domoticz, HomeBridge. Но если немного расширить диапазон наблюдения, то можно обнаружить множество программных систем, которые могут предложить схожий функционал, а местами даже больший. Сегодня, расскажу об одной из них — ioBroker. Расскажу обзорно, без погружения в подробности реализации, т.к. каждый элемент потребует отдельной статьи (если потребуется — будет статья).

Что за зверь?

ioBroker — это система автоматизации, разработанная на платформе Node.js (также как и HomeBridge). Благодаря этому, ее можно развернуть и запустить практически на любой операционной системе или виртуальной машине: Windows, Mac, Linux, в контейнере Docker и даже на Android. Это позволяет масштабировать систему исходя из потребностей: поставить ее на “малину” для дома, квест-комнаты или на сервер для гостиницы.Система ioBroker, как и большинство систем автоматизации, открытая и расширяемая. Новый функционал или устройства подключаются с помощью добавления “драйвера” или “адаптера” (так называемые плагины ioBroker), который можно установить из официального Store или из git-репозитория.Большинство действий выполняется из web-интерфейса администрирования и позволяет изменить любые параметры системы (нет необходимости редактировать config-файлы в терминале):управление набором драйверов и их параметрамимониторинг и изменения объектов системы, состояний и их историиразработка сценариев поведения и обработчиков событийразработка визуальных Dashboard для управления и представления состоянийи многое другое.Пример, как выглядит интерфейс администрирования можно посмотреть тут http://iobroker.click

Как это работает внутри?

Подход ioBroker’а заключается в том, что каждое подключенное устройство или сервис, представляется в виде набора состояний, которые могут изменяться устройством или пользователем. Т.е. устройство раскладывается на элементы и дальнейшая работа происходит с ними и их значениями. Работа с устройствами заключается в подписке на изменение состояний и собственно изменение других состояний в зависимости от ситуации.Так, например, обычную лампочку можно представить в виде одного состояния, которое будет обозначать включена она или нет. Но если лампочка диммируемая, то нужно еще одно состояние — уровень яркости. Для лампочки меняющей цвет — еще состояния оттенка (hue) и насыщенности (saturation). Для более сложных устройств количество наблюдаемых состояний растет.

Некоторые состояния имеют обратную связь и при их изменении со стороны ioBroker (например, пользователь поменял значение или при выполнении скрипта), значение отправляется обратно на устройство или сервис.Таким образом, например, можно включить лампочку, вручную поменяв ее состояние в объектах, или переключить режим работы термостата.Все состояния хранятся в древовидном реестре, который очень напоминает подход с протоколом MQTT, где данные соотносятся с топиками. Поэтому, соответствующий драйвер MQTT легко интегрируется с любыми mqtt-серверами (или брокерами). А также сам выступает в качестве MQTT-сервера/брокера для IOT-устройств, поддерживающих этот протокол.

Поддерживаемые устройства и сервисы

В ioBroker есть, активный по умолчанию, драйвер поиска устройств и автоматической установки драйверов для них. Поддерживаются не только устройства, которые стандартно распознаются, через UPnP, но и просто устройства, которые могут быть найдены по IP адресу или подключены к USB порту.

Благодаря открытой архитектуре в ioBroker постоянно появляются новые драйвера. Сейчас в официальном репозитории их насчитывается порядка 200 (), а список автоматически обнаруживаемых устройств постоянно пополняется ().При наличии дополнительного оборудования (различные USB-стики или шилды), можно использовать популярные протоколы: Z-Wave, Zigbee, BLE, KNX.

Можно интегрироваться с другими системами “Умного дома”, контроллерами и хабами: OpenHab, MiHome, HomeMatic, MegaD, Home assistant и другими.

Интерфейсы взаимодействия

Пользователь может взаимодействовать с ioBroker несколькими способами.

Vis-интерфейс

Видео примерioBroker обладает самыми гибкими возможностями настройки визуального интерфейса среди открытых систем автоматизации. Можно создать несколько страниц со сценами, на страницах расположить виджеты управления, отображения значений и изображения с камеры. Набор виджетов может быть произвольный и устанавливается дополнительными драйверами.В сети доступен набор страниц визуализации некоторых пользователей, которые поделились ими с разработчиками. Видно, что нет единого подхода к оформлению страницы управления “Умным домом” и каждый делает по своему усмотрению. Это с одной стороны хорошо, т.к. имеется простор для дизайна и нет ограничений. С другой стороны, это сложно неподготовленному пользователю.

Инста-видео зеркала с Vis-интерфейсомТакже, благодаря облачному сервису и Cloud-драйверу, можно получить доступ к визуальным интерфейсам ioBroker из глобальной сети без использования специальных средств (VPN, DynDNS и прочему).

Telegram-бот

После появления Telegram-ботов они оказались очень удобным способом взаимодействия с системами “Умного дома”. Бот принимает команды управления и может выводить любые данные, доступные в системе.

Видео примерБлагодаря драйверу text2command можно отправить текстовое сообщение боту и оно будет разобрано и выполнено. Например, текст “включи свет в детской” выполнит включение состояния, которое относится к “освещению” в комнате “детская”. И таких применений множество: шторы, музыка, отопление, охрана, замок и т.п. По функции очень напоминает Siri, но только текстовую.Также, через Telegram реализуют канал уведомлений о ситуациях, происходящих в системе. Очень удобно.

iOS Homekit

Естественно, у ioBroker есть возможность интеграции в систему Apple HomeKit. Благодаря драйверу Yahka, в системе можно создавать аксессуары, соответствующие требованиям HomeKit и использовать их на iOS устройствах.Для этого, в настройках драйвера Yahka необходимо создать виртуальные устройства и связать их характеристики с имеющимися в системе состояниями.Так, например, создав виртуальное устройство “Лампа” и связав его с состоянием, относящимся к включению/выключению реальной лампы, можно сделать кнопку управления лампой в приложении Дом на iOS. А если подключить и другие дополнительные состояния, то можно управлять и диммируемой лампой.

Датчики, сенсоры, камеры, термостаты, вентиляторы… любые устройства можно отобразить в Homekit и управлять ими через приложение Дом или попросить сделать это Siri.Нужно только, чтобы реальные устройства, которыми будет управлять Siri были заведены в систему и связать соответствующие состояния с виртуальными устройствами Homekit.

Видео пример

Голосовое управление

Коме Siri, управлять устройствами голосом возможно и через популярную на западе Amazon Alexa (жаль только не на русском языке). Для этого, к облачному сервису ioBroker, связанному с вашим локальным сервером, подключается специальный Alexa Skill, который перенаправляет и выполняет команды от вашей Amazon Dot.Видео примерЕсли нет умной колонки, то выполнять команды по-русски можно через приложения Android Tasker и PAW. Через эти приложения можно преобразовать голосовую команду в текст и отправить в ioBroker, где уже упоминаемый драйвер text2command выполнит ее и сообщит о результате.Дополнительно, интеграция через PAW драйвер, можно выполнять множество обратных команд на Android-устройстве: осуществлять звонки, писать SMS и воспроизводить голосом текст.Генерацие голоса из текста выполняется специальным драйвером SayIt, поддерживающим популярные TTS-движки от Google, Яндекс, Amazon. А вывод получившейся речи можно осуществить через колонки, Chromecast или Sonos.Также, голосовые команды можно принимать через созданную страницу в Vis-драйвере (в браузере Google Chrome) и принимать там ответные голосовые сообщения от ioBroker.

Сценарии

Одна из самых важных частей автоматизации — сценарии. Это логические блоки управления, которые определяют зависимости, поведение и взаимодействие между устройствами и их состояниями.“Включить свет при обнаружении движения”, “Добавить температуру отопительного контура, при приближении хозяев к загородному дому”, “Отправить в телеграм список состояний датчиков при получении команды”.Всё это реализуется сценариями.Для реализации сценариев могут использоваться либо визуальный язык Blockly, либо Javascript, либо TypeScript, либо очень популярный NodeRed.

Основная задача скриптов — описание реакции на происходящие в системе события. Для этого, в скриптах описываются обработчики изменений состояний. Например, при изменении состояния click, относящегося к беспроводной кнопке, изменить набор состояний, относящихся к модулям sonoff, включающих освещение. А при двойном нажатии — отключать свет.

Но более сложное поведение потребует знания Javascript, т.к. множество примеров выполнено именно на нём. Для реализации нужного функционала можно подключить любой npm-пакет и использовать его в скриптах.

И да, сценарии могут выполняться по расписанию.

Сообщество

Большинство пользователей ioBroker находятся в Европе, в Германии и это отражается на специфике сообщества, материалов, уроков, примеров и документации.

Но в последние два года, началось активное развитие русскоязычного сообщества.Появился соответствующий раздел на форумедокументациятелеграм-чат.

Заключение (личный опыт)

Признаюсь, это единственная система автоматизации, в которую я глубоко погрузился (хотя смотрел на Hass и MajorDoMo). Это стало моим хобби. ioBroker мне интересен своей архитектурой, возможностями и сообществом. На нем сейчас автоматизирую квартиру и дачу.Большинство из приведенных выше возможностей мне удалось попробовать на себе. Я разобрался и реализовал как простые варианты, так и более хитрые. Разработал пару драйверов для себя и ими стали пользоваться другие пользователи ioBroker.Я не стану хаять другие системы и не скажу, что это идеальная система. Я хочу обратить внимание на неё и дать её попробовать другим. Да, порог вхождения в написание скриптов требует базовые знания системы, но это везде так (только языки разные). Да, будут сложности с настройкой некоторых драйверов, но всё решаемо. Если кто-то уже через это проходил, значит и у вас получится.Зачастую, приемы интеграции с устройствами и примеры кода, могут легко быть адаптированы из одной системы автоматизации в другую. А общие рекомендации подходят всем и каждый увлекающийся автоматизацией сталкивается с ними.

И в нашем сообществе это понимают и делятся знаниями независимо от того какую систему автоматизации используют.


Илья, спасибо за материл и за развития движухи 👍👍👍👍

Спасибо за обзор. А гугловский голосовой ассистент можно подключить?

Прямой поддержки нет. Но подключить его через сторонние сервисы - можно.
Например, Google Home подключаешь к IFTTT, затем IFTTT должен передать фразу в ioBroker (доступный в интернете, например через cloud-сервис), затем фразу разбирает text2command - выполняется команда.

Также можно использовать встроенный в Google Home chromecast как принимающий сервис для "говорилки" SayIt или транслировать туда музыку (плагин - ioBroker.chromecast).

супер! 

Молодца, хорошая статья !

Илья спасибо за статью. Кроме обзорной статьи не хватает статьи с практикой: установка ioBroker, настройка и прокидывние какого-нибудь датчика в HomeKit и создание сценария.

Заодно немецкий повторите, блин где смайлики :-) , 🙈🙈😂😂🆘🆘👍👍👍👍👍👍

https://youtu.be/dj3WRwrNGbw">iobroker homekit yahka

Если этот комментарий наберет 100 лайков 🙈🙈😂😂🆘🆘✌✌👍👍👍👍👍👍, обещаю переснять подробнейший видос на РУССКОМ! Хотя итак всё интуитивно понятненько... не так ли?



https://youtu.be/If5h4qTKY8M">
https://youtu.be/If5h4qTKY8M">HomeKit und somit Siri im ioBroker

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

хорошая статья, прочитал с удовольствием 

Если этот комментарий наберет 100 лайков 🙈🙈😂😂🆘🆘✌✌👍👍👍👍👍👍, обещаю переснять подробнейший видос на РУССКОМ! Хотя итак всё интуитивно понятненько... не так ли?

https://youtu.be/If5h4qTKY8M">
https://youtu.be/If5h4qTKY8M">HomeKit und somit Siri im ioBroker

Очень доступно рассказано


Вернуться назад
Вернуться назад