Інтеграція 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. Проприетарний протокол поверх 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 тижнів. Вартість залежить від кількості типів пристроїв та додаткових функцій.