Введение
Zigbee — один из самых популярных протоколов для умного дома: датчики температуры, реле, розетки, выключатели — всё это работает на нём. Но стандартный «хаб» обычно замыкает автоматизацию на локальных правилах:温度 > 25°C → включить кондиционер. Что если добавить к этому AI-агента, который понимает естественный язык, анализирует контекст и может принимать неочевидные решения?
ASI Biont — AI-агент, который подключается к любому оборудованию через чат: вы описываете задачу, а он сам пишет код интеграции. В этой статье разберём, как подключить Zigbee-устройства через Zigbee2MQTT или ZHA к ASI Biont, какие сценарии автоматизации это открывает и почему MQTT — оптимальный мост для такой связки.
Архитектура интеграции
Zigbee-устройства не подключаются напрямую к серверу. Нужен координатор (Conbee, Sonoff, или встроенный в хаб), который переводит Zigbee-пакеты в USB/Serial или IP. Дальше два пути:
- Zigbee2MQTT — координатор работает как мост, публикует все события в MQTT-брокер (например, Mosquitto), а команды принимает из топиков вида
zigbee2mqtt/[устройство]/set. - ZHA (Zigbee Home Automation) — встроенная в Home Assistant система, она также умеет публиковать события в MQTT, но глубже интегрирована с HA.
ASI Biont поддерживает MQTT через paho-mqtt — это стандартная библиотека Python. Архитектура получается трёхзвенной:
┌─────────────┐ Zigbee ┌──────────────┐ MQTT ┌─────────────┐
│ Zigbee-устр-во │ <────────> │ Координатор │ <────────> │ ASI Biont │
└─────────────┘ └──────────────┘ │ (AI-агент) │
└─────────────┘
Почему MQTT, а не COM или Modbus?
Zigbee2MQTT и ZHA уже дают нам готовый MQTT-интерфейс — не нужно лезть в низкоуровневые протоколы. COM-порт (через Hardware Bridge) нужен для прямого подключения к координатору, но тогда мы теряем встроенную логику Zigbee2MQTT (перевод топиков, кластеры, привязки). Modbus/TCP тоже редко используется для Zigbee — это скорее для промышленных контроллеров.
MQTT — самый простой и надёжный способ: он асинхронный, поддерживает QoS, а топики уже структурированы по устройствам.
Как подключить: диалог с AI вместо панелей
В ASI Biont нет кнопок «добавить устройство». Вы просто пишете в чате:
Подключи мои Zigbee-устройства через Zigbee2MQTT. Брокер на localhost:1883, префикс топиков
zigbee2mqtt. Хочу управлять светом в гостиной.
AI-агент сам генерирует Python-код с paho-mqtt, выполняет его в песочнице и возвращает результат. Вот пример такого кода — подписка на состояние и отправка команды включения:
import paho.mqtt.client as mqtt
BROKER = "localhost"
PORT = 1883
DEVICE = "0x00158d0002abcd" # адрес устройства
CMD_TOPIC = f"zigbee2mqtt/{DEVICE}/set"
STATE_TOPIC = f"zigbee2mqtt/{DEVICE}"
def on_state(client, userdata, msg):
print(f"Состояние: {msg.payload.decode()}")
# AI может принять решение: если это датчик движения — включить свет
client = mqtt.Client()
client.on_message = on_state
client.connect(BROKER, PORT, 60)
client.subscribe(STATE_TOPIC)
client.loop_start()
# Включаем свет
client.publish(CMD_TOPIC, '{"state": "ON"}')
Всё выполняется за 3–5 секунд, без ручной настройки и документации.
Сценарии автоматизации
1. Голосовое и чат-управление освещением
Вы пишете: «Включи свет в спальне на 30%». AI парсит запрос, определяет устройство, отправляет команду через MQTT:
client.publish("zigbee2mqtt/0x00158d0002abcd/set", '{"brightness": 77}')
2. Климат-триггеры с анализом контекста
Датчик температуры публикует топик zigbee2mqtt/темп_гостиная. AI получает значение, сравнивает с прогнозом погоды (через HTTP API) и решает: включить обогреватель сейчас или подождать, так как через час наступит ночное похолодание.
# Данные из MQTT уже пришли, AI анализирует
if temp < 20 and night_expected:
client.publish("zigbee2mqtt/реле_обогрев/set", '{"state": "ON"}')
3. Безопасность с уведомлениями
Датчик открытия окна сработал в 2 часа ночи. AI проверяет: обычно в это время окно закрыто, а хозяева дома. Он отправляет уведомление в Telegram через requests.post к api.telegram.org:
requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": "⚠️ Окно открыто!"}
)
Zigbee2MQTT vs ZHA для связки с ASI Biont
| Критерий | Zigbee2MQTT | ZHA |
|---|---|---|
| Скорость отклика | Мгновенно (обычно 10–50 мс) | Чуть медленнее из-за прослойки HA |
| Совместимость с устройствами | 200+ типов, включая редкие датчики | Хорошая, но ограничена профилями HA |
| Настройка | Отдельный контейнер, простой конфиг | Полная интеграция в Home Assistant |
| Отказоустойчивость | Работает независимо от HA | Зависит от HA, при падении HA теряются все MQTT-топики |
| Масштабирование | Легко подключать к внешним MQTT-брокерам | Требует дополнительных мостов |
Для ASI Biont Zigbee2MQTT предпочтительнее: он отдаёт чистый MQTT без лишних слоёв, а ZHA дублирует события через HA, что добавляет лишнюю точку отказа.
Универсальный подход: execute_python для любых устройств
Главная фишка ASI Biont — встроенный execute_python. AI-агент пишет код интеграции под любое устройство прямо на лету: вы описываете, что у вас есть Zigbee-координатор на COM-порту, а AI сам решает, использовать ли pyserial для чтения сырых данных или paho-mqtt для работы через Zigbee2MQTT. Не нужно ждать, пока разработчики добавят официальную поддержку — подключайте датчики, реле, розетки, даже самодельные Zigbee-устройства, просто описав их в чате.
Это особенно полезно для нестандартных кейсов: например, когда нужно опросить конкретный атрибут Zigbee-кластера через ZHA, но API не позволяет — AI напишет обходной код через python-zigbee или zigpy.
Выводы
Интеграция Zigbee с ASI Biont через MQTT — это быстрый и гибкий способ превратить «умный дом» в «думающий дом». AI не просто выполняет команды, а анализирует данные с датчиков, учитывает контекст и принимает решения. Zigbee2MQTT vs ZHA — выбирайте Zigbee2MQTT, если хотите минимум задержек и максимум независимости.
Попробуйте сами: зайдите на asibiont.com, опишите своё Zigbee-устройство в чате — и уже через минуту ваш датчик или реле будет под управлением AI.
Источники: документация Zigbee2MQTT (zigbee2mqtt.io), протокол MQTT (mqtt.org), библиотека paho-mqtt (eclipse.dev/paho).
Комментарии