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 остаётся популярным выбором для энтузиастов умного дома, которые ценят открытость, локальность и совместимость оборудования.