Інтеграція ThingsBoard у мобільний IoT-додаток

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

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція ThingsBoard у мобільний 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

Інтеграція ThingsBoard у мобільне IoT-додаток

ThingsBoard — open-source IoT-платформа з готовим дашбордом, Rule Engine, Device Management та REST/WebSocket API. Часто розгортається self-hosted у корпоративних IoT-проектах, де дані не можна віддавати в облака AWS/Azure. Інтегрувати ThingsBoard у мобільний додаток — означає працювати з його REST API v2 та WebSocket telemetry endpoint, обходячи вбудований веб-UI.

REST API ThingsBoard: Що використовувати

ThingsBoard REST API покриває все необхідне: отримання telemetry, атрибутів пристрою, відправка RPC-команд, управління активами. Базова URL: https://your-thingsboard-host/api.

Авторизація: POST /api/auth/login з {"username": "...", "password": "..."} → JWT token + refresh token. Токен живе 2,5 години, refresh — 7 днів. Помилка 401 по закінченні токена — silent refresh через interceptor.

На Flutter використовуємо dio з interceptor:

_dio.interceptors.add(InterceptorsWrapper(
  onError: (err, handler) async {
    if (err.response?.statusCode == 401) {
      final newToken = await _refreshToken();
      err.requestOptions.headers['X-Authorization'] = 'Bearer $newToken';
      return handler.resolve(await _dio.fetch(err.requestOptions));
    }
    return handler.next(err);
  },
));

Основні endpoints для мобільного додатку:

  • GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries — останні значення telemetry
  • GET /api/plugins/telemetry/DEVICE/{deviceId}/values/attributes — атрибути (конфігурація, фіксовані параметри)
  • POST /api/plugins/rpc/twoway/{deviceId} — RPC-команда з очікуванням відповіді від пристрою
  • POST /api/plugins/rpc/oneway/{deviceId} — RPC без очікування відповіді

WebSocket для realtime-телеметрії

Polling telemetry кожні N секунд — неправильний підхід. ThingsBoard підтримує WebSocket API для підписки на зміни:

wss://your-host/api/ws/plugins/telemetry?token=JWT_TOKEN

Після підключення відправте subscription request:

{
  "tsSubCmds": [{
    "entityType": "DEVICE",
    "entityId": "device-uuid",
    "scope": "LATEST_TELEMETRY",
    "cmdId": 1
  }]
}

Сервер присилає оновлення при кожній зміні telemetry. На Flutter управляємо підключенням через web_socket_channel. Один WebSocket на весь додаток — мультиплексування через cmdId. При втраті з'єднання — переподключення з exponential backoff, повторна підписка на всі активні канали.

RPC: Управління пристроями

Two-way RPC — це синхронний запит до пристрою через ThingsBoard Rule Engine. Пристрій повинен бути онлайн та підписаний на v1/devices/me/rpc/request/+. Таймаут за замовчуванням 10 секунд, налаштовується в запиті.

final response = await _dio.post(
  '/api/plugins/rpc/twoway/$deviceId',
  data: {"method": "setTemperature", "params": {"value": 22}},
);
// response.data містить відповідь від пристрою

One-way RPC для команд без підтвердження: включити/вимкнути, відкрити/закрити. Two-way — для команд, де потрібно знати результат: отримати показання, перевірити статус.

Робота з Assets та іерархією

ThingsBoard підтримує Assets — логічні групування пристроїв (здання → поверх → кімната → пристрій). Для додатку умного здання це природна модель.

GET /api/relations?fromId={assetId}&fromType=ASSET&relationType=Contains — отримуємо всі дочерні об'єкти Asset. Будуємо дерево на клієнті. Важливо: API не повертає дерево за один запит — потребує рекурсивної загрузки або денормалізованого endpoint на вашому бекенді-прокси.

Типові проблеми

ThingsBoard Community Edition не підтримує multi-tenancy нормально для конечних користувачів — немає ізоляції на рівні Customer за замовчуванням у API. Для потребительских додатків (кожен користувач бачить лише свої пристрої) потрібно створювати TB Customer на кожного користувача та назначати пристрої. Це не масштабується без Professional Edition.

WebSocket з'єднання закривається сервером при неактивності після ~30 хвилин. Додаток повинен слати ping або періодичні subscription updates.

Терміни

REST API інтеграція, WebSocket telemetry, RPC-команди — 2–3 тижні. Іерархія Assets, мультипользовательский режим, кеширование — ще 2 тижні. Стоимость зависит от используемого издания ThingsBoard и числа устройств.