Интеграция Zigbee-устройств через IoT-хаб в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Интеграция Zigbee-устройств через IoT-хаб в мобильное приложение
Сложный
~3-5 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Интеграция Zigbee-устройств через IoT-хаб в мобильное приложение

Zigbee — беспроводной протокол на частоте 2.4 GHz (IEEE 802.15.4) с ячеистой топологией. Устройства ретранслируют сигнал друг через друга, что даёт хорошее покрытие без Wi-Fi. Прямого Zigbee API в мобильных приложениях нет — смартфоны не имеют Zigbee-радио. Всегда нужен хаб.

Варианты хабов и их API

Zigbee2MQTT — open-source мост: Zigbee USB-координатор (SONOFF Zigbee 3.0, Conbee II, CC2652P) → MQTT-брокер. Самый гибкий вариант для кастомных приложений. Каждое устройство публикует состояние в топик zigbee2mqtt/{friendly_name}, принимает команды из zigbee2mqtt/{friendly_name}/set.

JSON состояния датчика движения Aqara:

{
  "battery": 85,
  "occupancy": true,
  "tamper": false,
  "voltage": 2985,
  "linkquality": 102
}

Zigbee2MQTT также предоставляет REST API через zigbee2mqtt/bridge/request/device/options для управления конфигурацией — полезно для настройки из приложения.

Home Assistant — если Zigbee2MQTT запущен как HA addon, мобильное приложение работает через HA REST API или WebSocket API. Унифицированный интерфейс для всех устройств независимо от протокола. POST /api/services/light/turn_on с entity_id — вместо прямого MQTT.

Philips Hue Bridge — поддерживает только Zigbee-устройства Philips Hue. Закрытая экосистема, но с отличным REST API.

IKEA Hub — поддерживает устройства TRÅDFRI. Proprietary протокол поверх CoAP. Интеграция через реверс-инжиниринг или Home Assistant.

Amazon Echo (4-е поколение) / SmartThings Hub / Aqara Hub — имеют встроенный Zigbee-координатор. API у каждого свой.

Zigbee2MQTT как основа для мобильного приложения

Для кастомного мобильного приложения Zigbee2MQTT — лучший выбор. MQTT протокол прост, документация у Zigbee2MQTT отличная, поддерживает 3000+ устройств.

Подключение мобильного клиента к MQTT-брокеру (Mosquitto) через WebSocket (ws://broker-ip:9001). На Flutter — mqtt_client:

final client = MqttServerClient.withPort('192.168.1.100', 'mobile_app_client', 9001);
client.websocketProtocols = MqttClientConstants.protocolsSingleDefault;
await client.connect();
client.subscribe('zigbee2mqtt/+', MqttQos.atLeastOnce);
client.updates!.listen((messages) {
  final topic = messages[0].topic;
  final payload = MqttPublishPayload.bytesToStringAsString(
    messages[0].payload.message
  );
  // парсим JSON, обновляем UI
});

Команда на устройство:

final builder = MqttClientPayloadBuilder();
builder.addString('{"state": "ON", "brightness": 200}');
client.publishMessage('zigbee2mqtt/living_room_light/set', MqttQos.atLeastOnce, builder.payload!);

Парование новых устройств из приложения

Zigbee2MQTT поддерживает режим парования через MQTT: zigbee2mqtt/bridge/request/permit_join с {"value": true, "time": 60} — 60 секунд открытого окна для новых устройств.

Мобильное приложение запускает режим парования кнопкой. Подписывается на zigbee2mqtt/bridge/event — при появлении нового устройства приходит {"type": "device_joined", "data": {"friendly_name": "0x...", "ieee_address": "0x..."}}. Показываем пользователю найденное устройство, предлагаем дать имя и добавить в комнату.

Переименование: zigbee2mqtt/bridge/request/device/rename с {"from": "0x12345678", "to": "bedroom_sensor"}.

Сетка устройств и маршрутизация

Zigbee-сеть самоорганизуется: маршрутизаторы (розетки, лампы с постоянным питанием) ретранслируют сигнал для конечных устройств (батарейные датчики). Для диагностики — zigbee2mqtt/bridge/request/networkmap с {"type": "raw", "routes": true}.

Визуализация сети в приложении: граф узлов и рёбер. На Flutter — graphview пакет или CustomPainter для кастомной отрисовки. Узлы: координатор, маршрутизаторы (зелёные), конечные устройства (серые). Рёбра: толщина пропорциональна LQI (Link Quality Indicator, 0–255).

Типичные проблемы

Выпадение устройств. Датчик перестал публиковать данные. Zigbee2MQTT устанавливает last_seen timestamp — проверяем его в приложении, предупреждаем при задержке > N минут. Часто причина — разрядилась батарея или устройство вышло из зоны покрытия.

Interference с Wi-Fi. Zigbee и Wi-Fi работают на 2.4 GHz. Wi-Fi каналы 1, 6, 11 перекрываются с Zigbee каналами 11–26. Если сеть нестабильна — проверяем выбор канала в Zigbee2MQTT (configuration.yaml, channel: 25).

Coordinator не поднимается. SONOFF Zigbee 3.0 USB Dongle Plus на некоторых Linux требует явного указания порта в /dev/ttyUSB0 и user в группе dialout. Для Docker — devices: ["/dev/ttyUSB0:/dev/ttyUSB0"].

Сроки

Zigbee2MQTT + MQTT-клиент в приложении, базовое управление устройствами — 2–3 недели. Парование из приложения, визуализация сети, диагностика, автоматизация — 5–8 недель. Стоимость зависит от количества типов устройств и дополнительных функций.