Открыть сервисСервис

Zigbee2MQTT: мост для умного дома

Zigbee2MQTT — это свободно распространяемое программное обеспечение с открытым исходным кодом, которое выступает в роли шлюза (моста) между устройствами, работающими по протоколу Zigbee, и брокером сообщений MQTT. Оно позволяет интегрировать разнородные Zigbee-устройства (датчики, выключатели, лампы) в системы умного дома, управляемые через шину MQTT, без необходимости использования фирменных хабов производителей.

Назначение и принцип работы

Основная задача Zigbee2MQTT — устранить зависимость пользователя от проприетарных Zigbee-шлюзов конкретных брендов (например, Philips Hue Bridge или IKEA Dirigera). Программа работает на одноплатном компьютере (Raspberry Pi) или любом Linux-сервере, к которому подключён USB-адаптер Zigbee (например, на базе чипов Texas Instruments CC2531/CC2652 или Silicon Labs EFR32). Адаптер формирует собственную Zigbee-сеть, к которой устройства присоединяются напрямую.

Программа не создаёт физического радиомоста «в лоб». Она выполняет две функции: во-первых, поддерживает Zigbee-сеть на координаторе (адаптере), во-вторых, транслирует состояние каждого Zigbee-устройства в топики MQTT и принимает команды из MQTT для отправки обратно в Zigbee-сеть. Таким образом, Zigbee2MQTT является программным посредником между двумя разными протоколами: Zigbee (радио) и MQTT (TCP/IP).

История и развитие

Проект был основан в 2017 году разработчиком под псевдонимом Koen Kanters (также известен как Koenkk) как альтернатива проприетарным решениям. Первоначально поддерживался только дешёвый и распространённый адаптер CC2531, который требовал прошивки специальной прошивкой Z-Stack. По мере роста популярности проекта (сообщество на GitHub и Reddit) добавилась поддержка более мощных координаторов серии CC2652 и EFR32.

Ключевым моментом развития стала архитектура на основе «конвертеров» (converters) — файлов, описывающих, как конкретная модель устройства отображается в MQTT-топики. Благодаря этой модульности база поддерживаемых устройств быстро выросла до нескольких тысяч моделей от десятков производителей (Xiaomi/Aqara, IKEA, Philips, Tuya и других). Проект распространяется под лицензией GPL-3.0, что позволяет использовать его в коммерческих продуктах с соблюдением условий лицензии.

Ключевые характеристики

  • Аппаратная независимость: работает с USB-адаптерами на базе чипов CC2531, CC2652P/R, EFR32MG21 и другими, а также с сетевыми координаторами (например, TubeZB).
  • Локальность: вся обработка происходит локально, без облачных серверов, что обеспечивает приватность и низкую задержку.
  • MQTT-интеграция: публикует состояние устройств в топики вида zigbee2mqtt/<friendly_name> и принимает команды в топик .../set.
  • Автоматическое сопряжение: разрешает присоединение новых устройств в режиме «разрешить присоединение» (permit join) на определённое время.
  • Поддержка групп и сцен: позволяет создавать группы Zigbee (например, для синхронного управления лампами) и сцены.
  • Работа с приборами учёта: поддерживает снятие показаний с энергомониторов, термостатов и счётчиков.
  • Веб-интерфейс: встроенный интерфейс для мониторинга сети, просмотра карты связей и обновления прошивок устройств OTA (over-the-air).

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

База данных проекта содержит тысячи определений устройств. Поддержка реализована на уровне «конвертеров», которые описывают кластеры Zigbee (стандартные и специфические для производителя). Устройства делятся на категории:

  • датчики (движения, температуры, влажности, освещённости, протечки, дыма);
  • исполнительные устройства (реле, диммеры, розетки, сирены);
  • осветительные приборы (лампы, светодиодные ленты, драйверы);
  • климатическая техника (термостаты, кондиционеры через ИК-адаптеры);
  • устройства ввода (выключатели, кнопки, пульты).

Особенность поддержки устройств Xiaomi/Aqara заключается в том, что они используют нестандартные кластеры. Для них в Zigbee2MQTT реализованы специальные конвертеры, которые эмулируют поведение оригинального шлюза Xiaomi. Это позволяет использовать датчики Aqara без облака Xiaomi, что было одной из главных причин популярности проекта.

Настройка и конфигурация

Конфигурация описывается в файле configuration.yaml в формате YAML. Основные параметры: последовательный порт адаптера, настройки MQTT-брокера, список разрешённых устройств. Пример минимальной конфигурации:

``yaml mqtt: base_topic: zigbee2mqtt server: mqtt://localhost:1883 serial: port: /dev/ttyUSB0 ``

При первом запуске программа создаёт базу данных database.db, где хранит информацию о всех подключённых устройствах, их идентификаторах, имени и состоянии. Устройства получают «дружественные имена» (friendly_name), которые используются в топиках MQTT.

Интеграция с платформами умного дома

Zigbee2MQTT не является самостоятельной системой автоматизации. Он поставляет данные в MQTT-брокер (например, Mosquitto), а управление автоматизацией берут на себя другие платформы, которые умеют подписываться на MQTT-топики. Наиболее распространённые пары:

  • Home Assistant: имеет встроенную интеграцию с Zigbee2MQTT, которая автоматически обнаруживает устройства и создаёт объекты (entities). Для пользователя это выглядит как работа с обычными Zigbee-устройствами, но без хаба производителя.
  • OpenHAB: поддерживает MQTT-вещи, которые могут быть настроены вручную под топики Zigbee2MQTT.
  • Node-RED: используется для создания сложных сценариев автоматизации на основе MQTT-событий.

Также возможна работа с любыми другими системами, поддерживающими MQTT, включая самописные скрипты на Python или Node.js.

Преимущества и недостатки

Преимущества:

  • отсутствие привязки к вендорским экосистемам и облачным сервисам;
  • возможность смешивать устройства разных производителей в одной сети;
  • активное сообщество и регулярные обновления;
  • низкая стоимость входа (адаптер стоит значительно дешевле фирменного хаба);
  • расширенное управление (доступ к недокументированным возможностям устройств).

Недостатки:

  • необходимость наличия технических навыков для настройки и обслуживания;
  • зависимость от стабильности USB-подключения адаптера (решается использованием сетевых координаторов);
  • возможные проблемы с совместимостью при использовании очень новых или редких устройств, пока для них не выпущен конвертер;
  • отсутствие официальной поддержки со стороны производителей Zigbee-устройств.

Альтернативы

Основными альтернативами Zigbee2MQTT являются:

  • ZHA (Zigbee Home Automation) — встроенная интеграция Zigbee в Home Assistant, использующая библиотеку bellows. Проще в настройке, но менее гибкая и поддерживает меньше нестандартных устройств.
  • Matter — новый стандарт умного дома, который постепенно вытесняет Zigbee в новых устройствах, однако не поддерживает обратную совместимость со старыми Zigbee-датчиками.
  • Фирменные шлюзы (Xiaomi Hub, IKEA Dirigera, Philips Hue Bridge) — просты в установке, но ограничены экосистемой производителя и часто требуют облачного подключения.

Zigbee2MQTT остаётся популярным выбором для энтузиастов умного дома, которые ценят открытость, локальность и совместимость оборудования.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru