- 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
Очень доступно рассказано