Структура системы
архитектура
ioBroker — модульная система, то есть она состоит из множества отдельных компонентов. Каждый модуль выполняет определённую задачу. Для обеспечения общего контроля ioBroker использует центральный координатор для всех своих модулей. Этот координатор работает в фоновом режиме.js-controller Он отвечает за централизованное хранение данных, а также за управление и взаимодействие между всеми модулями. Сами модули представляют собойAdapter Они называются адаптерами. Пользователь устанавливает их только при необходимости. Веб-интерфейс администрированияadmin Административный адаптер сам по себе тоже является адаптером. Административный адаптер, или просто «Admin», — это интерфейс управления системой ioBroker. Доступ к Admin обычно осуществляется по адресу http://localhost:8081 .
При установке нового адаптера с использованием учетной записи администратора файлы адаптера сначала загружаются из интернета и записываются на жесткий диск сервера. Для запуска адаптера выполняется следующее:Instanz Адаптер сгенерирован. Каждый экземпляр адаптера может быть индивидуально настроен, а также независимо остановлен и запущен администратором. Таким образом, каждый экземпляр работает в собственном процессе, который взаимодействует с js-контроллером ioBroker в фоновом режиме.
Обзор хоста ioBroker: js-контроллер запускает и отслеживает экземпляры, каждый экземпляр работает в собственном процессе, и весь обмен данными между ними происходит через две базы данных. Адаптеры никогда не взаимодействуют напрямую друг с другом.
ВMultihost В системах с несколькими серверами ioBroker экземпляры адаптеров могут быть распределены между различными серверами. Это позволяет распределять нагрузку или напрямую подключать дополнительное оборудование на месте (например, порты ввода-вывода, USB).
Взаимодействие между адаптерами, JS-контроллерами, базами данных и веб-интерфейсами осуществляется через множество TCP/IP-соединений. В зависимости от выбранных настроек обмен данными происходит либо в открытом виде, либо в зашифрованном.
ioBroker и его адаптеры написаны преимущественно на языке программирования JavaScript. Для выполнения JavaScript требуется соответствующая среда выполнения. Поэтому ioBroker использует Node.js. Эта среда выполнения доступна для различных программных платформ, таких как Linux, Windows и macOS.
Для установки ioBroker и адаптеров используется менеджер пакетов Node.js, или сокращенно Node Package Manager.npm Используется Node.js. Он может искать, устанавливать, удалять, компилировать и обновлять модули и их зависимости. ioBroker не работает без Node.js. Ручная установка Node.js не требуется; установщик ioBroker делает это автоматически.
Как и многие технологии с открытым исходным кодом, Node.js быстро развивается. Регулярно выпускаются небольшие обновления, улучшающие стабильность и безопасность, а также добавляющие новые функции.
Версии Node.js с четными основными номерами становятся версиями с долгосрочной поддержкой (LTS) через несколько месяцев и затем поддерживаются в течение нескольких лет. Новая версия выпускается каждый год, и одновременно с этим старая версия достигает конца своего жизненного цикла (EOL) — после чего она больше не получает обновлений безопасности. Нечетные основные номера являются предварительными версиями и не подходят для ioBroker.
Для ioBroker это означает, что всегда применяется конкретная рекомендуемая версия LTS, а версии, выпущенные после окончания срока их поддержки, больше не поддерживаются адаптерами, а позже и js-контроллером. Информацию о том, какая версия в настоящее время рекомендуется и как переключиться, можно найти в разделе «Обновление Node.js и npm» .
Адаптер и экземпляр
Адаптеры — это специальные модули, которые интегрируют различные устройства, сервисы или протоколы в систему ioBroker. Они выступают в качестве интерфейсов между ioBroker и внешними системами, которые вы контролируете или с которых собираете данные. Адаптеры можно классифицировать по-разному, например, как адаптеры устройств, адаптеры протоколов, адаптеры сервисов, адаптеры баз данных, адаптеры визуализации, адаптеры скриптов и специализированные адаптеры.
Каждый экземпляр адаптера может быть индивидуально настроен, а также независимо остановлен и запущен администратором. Это обеспечивает гибкую и масштабируемую интеграцию различных устройств и сервисов в систему ioBroker. Экземпляры адаптеров работают в собственных процессах и взаимодействуют с js-контроллером в фоновом режиме.
Многохостовые системы
В многохостовой системе несколько серверов ioBroker могут быть подключены для распределения нагрузки или интеграции дополнительного локального оборудования. Это обеспечивает лучшую масштабируемость и гибкость системы ioBroker. Экземпляры адаптеров могут быть распределены по разным серверам для оптимизации использования системных ресурсов.
Обмен данными между серверами осуществляется по протоколам TCP/IP, а передача данных может осуществляться как в открытом виде, так и в зашифрованном виде, в зависимости от конфигурации. Многохостовые системы предлагают надежное и масштабируемое решение для крупных инсталляций с большим количеством устройств и сервисов.
Безопасность и обновления
Безопасность и регулярные обновления — важнейшие аспекты использования ioBroker. Node.js, базовая среда выполнения, быстро развивается и регулярно получает обновления, повышающие стабильность и безопасность. Важно использовать версии Node.js с долгосрочной поддержкой (LTS), поскольку они поддерживаются и получают обновления безопасности в течение более длительного периода.
ioBroker и его адаптеры используют множество модулей и расширений из сообщества разработчиков JavaScript с открытым исходным кодом. Важно регулярно обновлять эти модули, чтобы воспользоваться последними улучшениями в области безопасности и стабильности. Менеджер пакетов Node (npm) упрощает управление и обновление этих модулей.
Краткое содержание
ioBroker — это модульная и масштабируемая система для интеграции и управления различными устройствами, сервисами и протоколами. Центральный координатор, js-контроллер, управляет адаптерами и обеспечивает связь между различными компонентами системы. Адаптеры позволяют гибко интегрировать устройства и сервисы, а многохостовые системы обеспечивают дополнительную масштабируемость и гибкость. Безопасность и регулярные обновления имеют решающее значение для обеспечения стабильности и надежности системы ioBroker.